단순한 환경 변수를 사용하는 프로젝트라면 dotenv
를 사용하자.
여러 환경으로 나눠야하는 단순 프로젝트라면 cross-env + dotenv
를 사용하자.
여러 카테고리의 환경 변수를 사용하는 프로젝트라면 config
를 사용하자.
여러 환경 + 여러 카테고리로 환경 변수를 사용하는 프로젝트라면 cross-env + config
모듈을 사용하자.
nestjs를 사용할 때는 @nestjs/config 가 NestJS의 철학과 일치한다. 구조화된 방식으로 불러올 수 있기 때문이다.
BE 환경 구축을 할 때, 성윤님과 내가 환경 변수를 불러오는 방법이 달랐다. 나는 당시 NestJS에 대한 완벽한 학습이 안 되어있어서 @nestjs/config
라는 게 있는 지 몰랐다. 그래서 dotenv
로 불러오려고 했는데, 성윤님께서 @nestjs/coinfig
모듈을 알려주셨다. 하지만 이 두 차이점에 대해서는 둘 다 몰랐기에 궁금해서 찾아봤다.
환경 변수를 나눠야 하는 이유부터 찾아보자.
환경 변수는 운영체제에 저장되어 있는 변수라고 볼 수 있다.
윈도우로 따지자면, 사용자 변수
와 시스템 변수
가 있다.
윈도우에서는 사용자별로 변수를 만들어서 쓸 수도 있고, 시스템 전체에 변수를 만들어서 쓸 수 있는데, 대부분 윈도우 사용자를 딱히 나누지는 않으니까… 난 대부분 시스템 변수에 추가한다.