2.5.4.1 process.env
REPL에 process.env를 입력하면 매우 많은 정보가 출력됩니다. 자세히 보면 이 정보들이 시스템의 환경 변수임을 알 수 있습니다. 시스템 환경 변수가 노드에 직접 영향을 미치기도 합니다. 대표적인 것으로 UV_THREADPOOL_SIZE와 NODE_OPTIONS가 있습니다.
NODE_OPTIONS=--max-old-space-size=8192 UV_THREADPOOL_SIZE=8
왼쪽이 환경 변수의 이름이고 오른쪽이 값입니다 NODE_OPTIONS는 노드를 실행할 때의 옵션들을 입력 받는 환경 변수입니다. --max-old-space-size=8192는 노드의 메모리를 8GB까지 사용할 수 있게 합니다. 옵션이 다양한데, 2.10절에 NODE_OPTIONS에 대한 자료 링크를 적어 뒀습니다. UV_THREADPOOL_SIZE는 노드에서 기본적으로 사용하는 스레드 풀의 스레드 개수를 조절할 수 있게 합니다. 2.7.4절에서 자세히 알아봅니다.
시스템 환경 변수 외에도 여러분이 임의로 환경 변수를 저장할 수 있습니다. process.env는 서비스의 중요한 키를 저장하는 공간으로도 사용됩니다. 서버나 데이터베이스의 비밀번호와 각종 API 키를 코드에 직접 입력하는 것은 위험합니다. 혹여 서비스가 해킹당해 코드가 유출되었을 때 비밀번호가 코드에 남아 있어 추가 피해가 발생할 수 있습니다.