dotenv로 환경 변수를 .env 파일로 관리하기
Node.js 프로젝트에서 환경 변수를 좀 더 효과적으로 관리하기 위해서 dotenv
라는 라이브러리를 사용하고 있다. 이번 포스팅에서는 환경 변수를 파일에 저장해놓고 접근할 수 있게 도와주는 dotenv
라이브러리에 대해서 알아보자
dotenv 패키지 설치
$ npm i dotenv
.env 파일 작성
dotenv
라이브러리는 아무 설정을 하지 않으면 현재 디렉토리에 위치한 .env 파일로 부터 환경 변수를 읽어오는데, .env
파일을 생성하고, 그 안에 필요한 환경 변수를 key = value
의 포맷으로 나열한다.
// .env
DB_USER = 아이디
DB_PW = 비밀번호
DB_NAME = collection 이름
이렇게 .env
파일에 저장해놓은 환경 변수들을 dotenv
라이브러리를 이용해서 process.env
에 설정할 수 있다.
본인 프로젝트가 CommonJS
기반인지 ES모듈
기반인지에 따라 라이브러리 사용법이 약간 상이하므로 나눠서 설명한다.
CommonJS에서 환경 변수 불러오기 (require)
프로그램을 구동할 때 제일 먼저 실행되는 자바스크립트 파일(ex index.js
, main.js
)의 최상위에 다음과 같이 dotenv
라이브러리를 임포트한 후 config()
함수를 호출해주기만 하면 된다.
// index.js
const dotenv = require("dotenv").config();
console.log('DB_USER', process.env.DB_USER);
console.log('DB_PW', process.env.DB_PW);
console.log('DB_NAME', process.env.DB_NAME);
$ node index.js
DB_USER = 아이디
DB_PW = 비밀번호
DB_NAME = collection 이름
하지만 같은 파일 내에서 dotenv
라이브러리의 config()
함수를 호출하기 전에 process.env
를 읽으면 안 되니 주의해야 한다.
ES모듈에서 환경 변수 불러오기(import)
ES모듈에서 사용하고 있는 Node.js환경에서는 rrquire
대신에 import
키워드를 사용해서 dotenv
패키지를 불러오면 된다.
import dotenv from "dotenv";
dotenv.config();
console.log("DB_USER", process.env.DB_USER);
console.log("DB_PW:", process.env.DB_PW);
console.log("DB_NAME:", process.env.DB_NAME);
$ node index.mjs
DB_USER = 아이디
DB_PW = 비밀번호
DB_NAME = collection 이름