프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임 [위키피디아]
환경변수
이다.Dotenv is a zero-dependency module that loads environment variables from a .env file into process.env. Storing configuration in the environment separate from code is based on The Twelve-Factor App methodology. [dotenv 공식문서]
해석 : Dotenv는 .env 파일에서 process.env로 환경 변수를 로드하는 제로 종속성 모듈입니다.
dotenv
는 환경변수를 .env
파일에 저장하고 process.env
로 로드하는 의존성 모듈이다.dotenv
를 사용하는 이유는 우리가 개발을 하는 과정에서 서버주소, 고유 API KEY 값 등 필요한 정보들을 저장을 하게 된다. 그리고 이러한 정보들은 민감한 정보임과 동시에 보안이 이루어져야 하는 정보들이다. 만약 이러한 정보들이 오픈소스(깃허브)에 공개될 경우, 해킹을 당하거나 보안적인 면에서 위험할 수 있다.dotenv
패키지를 이용하여 환경변수 파일(.env
)을 외부에 만들어 접근할 수 있게 하고, 개발 초기 단계에서 세팅하기를 권고한다.# npm
npm install dotenv
# .env 파일
DATABASE_NAME='[DB명]'
DATABASE_USERNAME='root'
DATABASE_PASSWORD=''
.env
파일을 루트경로
에 생성한 후 안에 들어갈 텍스트는 반드시 이름 = 값
형식으로 적어준다.key-value
형태의 변수]# 해당 파일
//import dotenv from 'dotenv'
require('dotenv').config();
.env
를 사용하고자 하는 파일 안에 dotenv
를 부른다.dotenv.config()
는 현재 디렉토리의 .env
파일을 자동으로 인식하여 환경변수를 세팅한다.dotenv.config(경로)
는 원하는 .env
파일의 위치를 직접 지정하여 세팅할 수 있다.# 해당 파일
user: process.env.DATABASE_USERNAME || 'root',
password: process.env.DATABASE_PASSWORD || '',
database: process.env.DATABASE_NAME || '[DB명]'
.env
에 저장되어 있는 변수들을 부를 때는 process.env.변수이름
으로 불러주면 된다.key-value
형태로 저장이 되며, 부를 때는 process.env[key]
형태로 부른다.process.env.NODE_ENV
형태# .gitignore 파일
# dotenv environment variables file
.env
.env
파일에 저장하더라도 .env
파일을 오픈소스(깃허브)에 올린다면 공개하는 것과 다름없기때문에 .gitignore
파일에 .env
파일을 추가하여 무시해준다.
.env
파일은 루트에 위치해야한다.
이거 위치 제대로 설정안해주면 에러난다.