Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

coding etude

201122[dotenv] 본문

카테고리 없음

201122[dotenv]

코코리니 2020. 10. 31. 02:12

dotenv(.env) 는 구동에 필요한 환경변수를 저장하여 외부에 유출 되는것을 막는 기능을 한다.

 

예를들어 외부 API 키, 접속 비밀번호, 접근 허용 token 제작용 secret키 등등 외부에 유출시 보안에 문제가 되는 것들을 보호해주고 사용 가능하게 만들어 주는 파일인 것이다.

 

dotenv를 사용하기 위해서는 먼저 설치를 해주어 dependencise에 추가해 주고 env가 필요한 파일에 다음과 같이 참조를 해주어야 한다.

//dotenv 설치하기
npm i dotenv;

//dotenv 참조하기
require(dotenv).config()

 

간단한 예로 config 파일에 DB에 접속하기 위한 아이디 값과 비밀번호를 코딩하면서 그대로 적어 둔다면 누구나 DB에 접속이 가능하게 되는데 이것을 다음과 같이 만들면 보안을 유지 할 수 있다.

//잘못된 예시
require(dotenv).config()

{
"username": "root",
"password": "1234",
"database": "test",
.
.
.
}
//dotenv 이용 예시
require(dotenv).config()

{
"username": "process.env.DATABASE_USERNAME",
"password": "process.env.DATABASE_PASSWORD",
"database": "test",
.
.
.
}

그럼 .env 파일의 작성방법을 보겠다.

DATABASE_USERNAME = root
DATABASE_PASSWORD = 1234

위의 방법 처럼 .env 파일은 key=value 로 작성을 해야 한다.

 

.env 파일을 만들어서 github 에 공유를 해야 하는 상황이 분명 있을것이다. 이럴땐 반드시 .gitignore 파일을 만들어서 업로드 시 env가 포함 되지 않게 해줘야 한다

보통 gitignore에는 modul 도 포함 시킨다. (이유는 dependencise에 있는 내용을 사용자가 다운 받으면 되기 때문..)

그래서 pull 로 데이터를 내려받았는데 실행 오류가 난다면 .env가 있는지 확인해봐야 한다. 

보통 pull 한 자료는 .env 를 local 에서 직접 작성해 줘야 한다. 참고 하자.