본문 바로가기

나혼자공부시간(평일저녁,주말,휴일때)

AWS RDS대여:클라우드 구축하기/mysql(MariaDB)로 로그인 구현/dotenv.config();환경변수 설정(정보 보안)

https://aws.amazon.com/free/?trk=e747cc26-a307-4ae0-981a-6dc5c1cb4121&sc_channel=ps&ef_id=Cj0KCQjw0bunBhD9ARIsAAZl0E1HS8mLCWw7CWHHDgU0WrBz6NkA35z58wLpVFFbeSG6ekTfN4OVSOIaAuGhEALw_wcB:G:s&s_kwcid=AL!4422!3!453053794209!e!!g!!aws!10705896207!102406402981&all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free%20Tier%20Types=*all&awsf.Free%20Tier%20Categories=*all

 

무료 클라우드 컴퓨팅 서비스 - AWS 프리 티어

Q: AWS 프리 티어란 무엇입니까? AWS 프리 티어는 고객에게 서비스별로 지정된 한도 내에서 무료로 AWS 서비스를 살펴보고 사용해 볼 수 있는 기능을 제공합니다. 프리 티어는 12개월 프리 티어, 상

aws.amazon.com

 

aws RDS 들어가서 데이터베이스 생성.

aws Region별로 다수의 가용역역이 존재.

가용영역은 서버가 존재하는 물리적인 공간을 의미하며, 사용 가능한 가용전은 계정에 따라 다르다.

 

 

 

 

오류발생

 

해결법

https://code4human.tistory.com/74

 

[AWS] RDS DB 인스턴스 연결 오류 : ERROR 2003 (HY000): Can't connect to MySQL server on

오류 ubuntu 서버에서 MySQL에 접속하려니 오류가 났다. 오류 이유 대부분 이유 중 하나가 DB 인스턴스 생성시 자동으로 생성된 보안 그룹에 있는 DB 인스턴스에 접근하기 위한 권한을 부여한 수신 IP

code4human.tistory.com

 

김지원님처럼 위치 무관 안되는 분들 , 인바운드 규칙 편집 들어가시고 인바운드 규칙 추가 하셔서 mysql auroa /tcp /3306 :anywhere ipv6 차례대로 입력 후 인바운드 규칙을 추가하시고 다시 앤드 포인트 받아서 하면 됩니다…!!! 열심히 삽질한 결과 ㅎ

 

 

 

 

로그인 버튼을 클릭하면! 순서!!!

이 index.js에 있는 process.login으로 들어가고

 

 

 

home.ctrl.js파일에 있는 process함수발동. user에 있는 login();메서드가 발동하고

 

User.js에 저 UserStorage.js에 있는 getUserInfo함수를 발동시켜 client.id를 들고와주세요하고 요청!

 

 

그러면 여기 Userstorage.js에 있는 getUserInfo(id);가 실행되면서 리턴값data을 User.js로 다시 응답해준다.

여기서 return data; 로 반환 시키면 콜백함수 (err, data) => {}이거에 대한 data가 반환되어버림.

static getUserInfo(id){}에 대한 반환값을 리턴해줄려면 Promise로 해서 비동기 시켜버림. 그러면 저거 콜백함수가 먼저 실행 안되고 getUserInfo()로 data값 반환됨.

 

//이 데이터는 지금 배열로 감싸져 있다. 그래서 data[0]로해서 값만 들고와야함

 

함수는 한 가지 기능만 수행하도록 구현해줘야함.

Promise로 만들어주지 않으면 하나의 함수에서 DB를 조회하고, 로그인 정보를 검증하고, 클라이언트에 응답까지 해주는 "이도저도 아닌 코드"가 만들어진다.

 

클래스는 User와 UserStorage처럼 각자의 역할을 분명하게 구분 시켜주는 것이 좋습니다.

UserStorage에서는 DB를 CRUD(생성,읽기, 수정, 삭제)하는 역할만 수행하고, 해당 데이터를 가지고 검증 및 조작하는 것은

User가 수행하도록 역할을 구분해준 것이다.

 

//#users처럼 은닉화 해주면 home.ctrl.js파일에서 UserStorage.#users를 못들고옴
//그래서 이렇게 getUsers 메소드 만들어줘서 UserStorage.getUsers로 해줘야함
//전역변수로 들고왔으니 static getUsers로 맞춰준다 static #users ㅇㅇ
// const users = this.#users;

 

 

dotenv.config({path: 경로}); 와 같은 식으로 .env파일경로를 지정해줄수 있음.

 

 

.env에 등록되있는 변수들이 app.js파일에서 접근할수 있게 해줄거임

이때 process.env를 통해서 접근할수있다.

환경변수로 정보 은닉화하고 보안안전 지킬수 있음.