본문 바로가기
NodeJS, NPM, Koa

Dotenv 로 관리하는 환경변수 # NodeJS

by Developer88 2021. 5. 1.
반응형

오늘은 NodeJS를 개발하면서 Dotenv로 환경변수를 관리하는 방법에 대해서 정리해 보도록 하겠습니다.

 

1. Dotenv 와 NodeJS의 환경변수

Production모드나 Dev모드를 변환하거나,

DB의 password 나 API 액세스키 같은 값의 경우 환경변수로 저장해놓고 사용을 하게 되는데요.

Dotenv는 환경변수를 ".env" 라는 파일에 저장해 놓으면, process.env로 로딩해주는 NodeJS의 편리한 모듈입니다.

 

2. 모듈 설치

모듈을 설치하기 위해서 다음 명령어를 입력해 줍니다.

 

npm install dotenv --save

 

 

3. ".env"파일 생성과 환경변수 저장

제일 먼저 할 일은 ".env"파일을 만들고,

그안에 "NAME=VALUE" 형식으로 환경변수들을 집어넣어 주는 것 입니다.

아래와 같은 환경변수를 저장했다고 가정해 보겠습니다.

 

 

 

4. 환경변수 로딩하고 사용하기

4-1. 로딩과 실행

그럼, 이것을 실제로 mongoose에서 불러다 어떻게 쓰는지 보도록 하겠습니다.

제일 먼저 할 것은, 아래와 같이 'dotenv'를 require하고 config()를 호출해 줍니다.

공식문서상에서는 최대한 이른 시점에 하라고 되어 있습니다.

 

config()함수가 ".env"파일을 읽어서, process.env에 값을 넣어주고,

return값으로 키와 밸류를 가진 값을 주거나,  실패할 경우는 error값을 줍니다.

위에서 설정한 것과 같이, "DB_URI"값을 가져오려면,

"dotenv.parsed.DB_URI"로 접근하면 되겠지요.

 

const dotenv = require('dotenv').config;
if (dotenv.error) throw dotenv.error

console.log(dotenv.parsed);

 

만약, 좀더 도움이 되는 에러결과를 받고 싶다면 아래와 같이 debug모드를 true로 해 줍니다.

 

const dotenv = require('dotenv')
result = dotenv.config({ debug: true })

 

이렇게 result를 받지 않고, 직접 "process.env" 에 접근해서 값을 얻어올 수도 있습니다.

 

process.env.DB_URI

 

5. 팁 및 주의할 점

5-1. gitignore에 포함시키기

이 환경변수에 DB의 키값등을 넣어서 사용하게 될 경우,

commit을 하지 않는 것이 좋습니다.

대신, 프로덕션 서버에는 서버에서 사용하는 env값을 가지고 있어야 하겠지요.

아래와 같은 2줄이 gitignore에 포함되도록 합니다.

 

# dotenv 
.env

 

6. 정리

이상으로 환경변수를 파일로 저장해서 사용할 수 있는 ".env"모듈에 대해서 정리해 보았습니다.

사용법이 간단하면서도, 필요한 모듈이라고 생각합니다.

업데이트할 내용이 있다면 이 글을 통해서 변경하도록 하겠습니다.

 

728x90

댓글