Node.js에서 환경 변수 다루기 (process.env)

yezo cha·2021년 7월 19일
0
post-thumbnail

Node.js에서 환경 변수에 어떻게 접근하고 설정할 수 있는지 알아보자.

환경 변수 ?

API key와 같이 공개할 수 없는 정보가 코드에 포함될 경우, 네트워크를 통해 API key가 공개될 수 있다.
이런 일을 방지하기 위해서는, API key를 PC에 저장해두고 사용해야 한다.
JavaScript에서 변수에 문자열을 할당하는 것처럼, API key를 PC에서 사용하는 변수에 할당하고 사용할 수 있다.

DB password나 API key와 같은 인증 정보는 공개된 코드 저장소에 올리면 안되기 때문에 환경 변수로 저장해놓고 사용하는 것이 일반적이다.

환경 변수 접근

Node.js에서 환경 변수에 접근할 때는 process.env라는 내장 자바스크립트 객체를 사용한다.
process는 전역 개체라서 별도로 임포트해야하는 모듈이 없고 애플리케이션 어디에서든지 접근이 가능하다.

node
> process.env
...
> process.env.USER
...
> process.env.HOME
...

환경 변수 설정

운영 체제에 따라서 다양한 방법으로 설정할 수 있다.
애플리케이션을 실행할 때 일회성으로 환경 변수를 설정하고 싶다면 node 명령어 앞에 환경변수를 키=값 형태로 명시해준다.

$ API_KEY=abc DB_PASSWORD=1234 node
Welcome to Node.js v14.15.0.
Type ".help" for more information.
> process.env.API_KEY
'abc'
> process.env.DB_PASSWORD
'1234'

이렇게 Node.js 프로세스 레벨에서 설정해준 환경 변수는 해당 프로세스가 살아있는 동안에만 유효하고, 프로세스가 종료되면 사라진다.

운영 체제에서 지원하는 커맨드를 이용하면 터미널 창을 닫을 때까지 설정한 환경 변수를 유지할 수 있다.
리눅스나 Mac OS에서는 export 키=값을 사용해서 환경 변수를 설정해주면 된다.

$ export API_KEY=abc
$ export DB_PASSWORD=1234
$ node
Welcome to Node.js v14.15.0.
Type ".help" for more information.
> process.env.API_KEY
'abc'
> process.env.DB_PASSWORD
'1234'

이렇게 터미널 레벨에서 설정한 환경 변수는 Node.js 프로세스를 종료하고 새로운 프로세스를 실행하더라도 동일한 환경 변수 값을 얻을 수 있다.

process.env가변 객체이기 때문에 얼마든지 새로운 항목을 설정하거나 기존에 설정된 값을 자유롭게 갱신 또는 제거할 수 있다.

$ node
Welcome to Node.js v14.15.0.
Type ".help" for more information.
> process.env.API_KEY = "abc"
'abc'
> process.env.API_KEY
'abc'
> process.env.API_KEY = "def"
'def'
> process.env.API_KEY
'def'
'1234'
> delete process.env.API_KEY
true
> process.env.API_KEY
undefined
profile
(ง •̀_•́)ง

0개의 댓글