일반적으로 우리는 코드 베이스는 하나만 관리하고, 개발, 테스트, 운영 등 여러 환경에 애플리케이션을 배포하는데 어느 환경에 배포하느냐에 따라서 다르게 설정해야 하는 항목은 보통 운영체제 레벨에서 환경변수를 통해 관리하게 된다.
대표적인 예로, 개발 환경에서는 로컬 DB를 사용해야하는데, 운영 환경에서는 원격 DB를 사용해야하는 경우를 들 수 있다. 뿐만 아니라 DB password나 API key와 같은 인증 정보는 공개된 코드 저장소에 올리면 안 되기 때문에 환경 변수로 저장해놓고 사용하는것이 일반적이다.
Node.js 서버의 포트, DB 관련정보 등 다양한 정보를
.env
파일로 관리할 수 있게 해주는 Node.js 패키지
Node.js 서버를 만들 때, github나 공유되서는 안되는 중요한 정보들을 사용할 때가 있는데 이럴 때,
.env
를 사용하면, 기존의 기능을 유지하면서, 정보들을 공유하지 않도록 할 수 있다.
npm install dotenv
.env
파일 만들기PORT = 3000
TOKENKEY = 'holy-moly'
MONGO_URL = 'mongodb://localhost:27017/holy-moly'
.env
파일 안에는 환경 변수나 유출되면 안되는 정보를 담아준다.
.env
파일 관리하기app.js 에서 아래와 같은 코드를 작성하게 되면 .env
안에 있는 값들을 가져올 수 있다.
꼭 맨 위에 작성해야 한다. (설정이 적용된 후에, 나머지 코드들이 실행되기 위해서)
require('dotenv').config();
process.env
사용하기.env
로부터 불러온 환경변수를 사용하기 위해서는process.env.변수명
키워드를 사용해야한다.예를들어 .env
에서 선언된 환경변수인 PORT
와 TOKENKEY
, MONGO_URL
을 사용하려면 아래와 같이 작성해주면 된다.
process.env.PORT
process.env.TOKENKEY
process.env.MONGO_URL
.env
파일을 .gitignore
에 추가하기.env
파일은 중요한 정보가 담겨있기 때문에 git
에 업로드 되지 않도록 .gitignore
파일에 반드시 추가해 주어야 한다.// .gitignore
.env
https://velog.io/@iamhayoung/dotenv%EB%9E%80-Node.jsExpress%EC%97%90%EC%84%9C-dotenv%EB%A1%9C-%ED%99%98%EA%B2%BD%EB%B3%80%EC%88%98-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
https://www.daleseo.com/js-node-process-env/
https://defineall.tistory.com/859
https://hudi.kr/node-js-dotenv-%ED%99%98%EA%B2%BD-%EB%B3%80%EC%88%98-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/
https://www.daleseo.com/js-dotenv/