TIL - 환경 변수 설정과 dotenv 패키지

김수지·2020년 1월 12일
2

TILs

목록 보기
26/39

Today What I Learned

Javascript를 배우고 있습니다. 매일 배운 것을 이해한만큼 정리해봅니다.


1. 환경 변수?

  • 지난 이틀 간 서버 구성을 하고 서비스를 aws에서 배포해보면서 환경 변수를 다룰 기회가 있어서 한 번 정리해보고자 한다.
  • 환경 변수(environment variable) : 위키피디아에서 찾아보면 "컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임"이라는 정의를 찾을 수 있다.
  • 나는 이번주에 개발모드나 프로덕션 모드에서 사용하는 값의 구분, 그리고 깃헙에 노출되면 안되는 중요 키 등 설정을 위해서 환경 변수 값을 사용했다. node js에서는 process.env라는 값을 통해 환경 변수를 불러올 수 있다.
  • 구글링해보니 os에서 환경변수를 지정하는 파일을 열고, 변수명=값 형식으로 원하는 값들을 변수에 담아놓은 후 해당 계정으로 node js에서 변수들을 사용할 수 있다고 한다. 만약 모든 사용자가 공통으로 사용하려고 한다면 /etc/profile에 변수를 설정하면 된다. 등록된 환경변수를 확인하려면 echo $변수명으로 터미널에서 검색해서 확인을 할 수 있다.
  • 환경 변수 사용하기: 이번 프로젝트에서는 환경 변수를 package.json에서 script 실행 시 적용해주었다.

2. node js에서 환경변수 사용하기 : dotenv 패키지

  • 위에서 다룬 것처럼 터미널에서 환경변수를 지정할 수 있지만 node js라는 런타임에서는 dotenv 라는 패키지를 함께 사용해서 더 편리하게 작업을 할 수 있다.
  • npm dotenv(https://www.npmjs.com/package/dotenv)을 설치한다.
  • root directory에서 .env라는 파일을 만들고 환경변수를 입력한다.
  • 그런 다음 node js에서 require('dotenv').config()를 선언해준 다음 process.env.변수명의 형태로 적용할 수 있다.
  • gitignore 파일에 .env를 추가한다. (git 저장소에 업로드 되지 않도록)
  • 다만 aws ec2 등에 서버를 올리기 위해 별도의 작업이 필요하다.
  • 로컬 컴퓨터에서와 같이 ec2에 설치한 os에서도 환경변수 지정이 필요하다.
  • 이렇게 서버의 상황이 다를 경우(개발서버 vs 프로덕션서버, 테스트 등)에는 config 폴더를 만들어서 모드에 따라 변수 값을 다르게 적용할 수 있게 적용을 해야 한다.
  • 그런 다음 ec2에서 서버를 돌려야 적절한 값들이 사용된다.
  • 이번 프로젝트에서는 이런 식으로 값을 설정했다.
profile
선한 변화와 사회적 가치를 만들고 싶은 체인지 메이커+개발자입니다.

0개의 댓글