.env 파일 사용법과 고려사항

프로젝트 환경에 따라 .env 파일을 다변화하는 방법

.env 환경변수 관리의 중요성

지금까지 여러 프로젝트를 하면서 외부에 노출되면 안되는 중요한 환경변수들을 .env 파일 한 곳에서만 관리했다.
근데 노인복지관 프로젝트를 진행하면서 프로젝트 실행 환경에 따라 환경변수의 value 수정이 필요했는데, 그 방식에 대해서 고민 하던 중 env 파일을 다변화하는 방법에 대해 알아보았다.

동적으로 환경변수 설정하기

"scripts": {
  "start": "NODE_ENV=production PORT=80 node app", // NODE_ENV 환경변수를 production으로 PORT 환경변수를 80으로 하고 서버 실행
  "dev": "nodemon app",
},

npm start 혹은 npm run dev 등과 같이 스크립트 명령어를 실행할 때 환경변수를 변경하는 방식이다. 근데 환경변수가 늘어나거나, 외부에 노출되면 안되는 value가 있다면 적합하지 않아 보인다.

.env 파일 다변화하기

종류

  • .env: 기본값으로, 모든 환경에서 load 된다.
  • .env.local: 테스트 환경을 제외한 모든 환경에서 load되는 값으로, 로컬에서 애플리케이션 실행 시에만 적용된다. 배포 시 적용되지 않음.
  • .env.development | .env.test | .env.production: 특정 배포 환경 별 지정 파일을 설정한다.
  • .env.development.local | .env.test.local | .env.production.local: 특정 배포 환경 별 환경 설정에서 개인 로컬에 맞게 커스텀하고 싶은 부분이 있는 경우 해당 부분을 오버라이드해 적용한다.

우선순위

  • npm run start시 우선순위
.env.development.local > .env.development > .env.local > .env
  • npm run build시 우선순위
.env.production .local > .env.production > .env.local > .env
  • npm run test시 우선순위
.env.test.local > .env.test> .env.local > .env

다양한 환경에서 상항에 따라 파일을 관리하고 대응할 수 있어서 2번의 방식을 택했다.


0개의 댓글

로그인하고 댓글을 작성하세요.

로딩 중...