환경 변수란? linux OS에 설정한 전역변수를 의미한다. 즉, 커널 영역에 설정된 전역 변수를 뜻한다.
그렇다면 OS에 전역변수를 설정하는 이유는 뭘까?
외부에 공개하는 오픈 소스 프로젝트를 진행한다고 했을 때 공개되도 상관없는 코드, 안되는 코드들이 있을 것이다.
후자의 케이스로는 api key, 포트 넘버, DB 패스워드 등이 될 수 있는데 이들을 OS의 커널에 저장해놓고 커널에서 불러오는 방식으로 사용한다면 외부 유출 가능성을 낮추고 보안성을 높일 수 있다.
환경 변수 사용을 위한 설명 순서는 다음과 같다.
환경 변수 생성 ( export )
환경 변수 불러오기 ( dotenv )
- 환경 변수 생성 ( export )
1. 터미널에서 명령어 export 입력을 통해 커널에 설정된 현재의 전역변수들을 확인할 수 있다.
2. export (설정할 환경 변수 이름) = "환경 변수 값" // 환경 변수를 생성한다.
ex) export DB_Password ="is_good" // DB_Password 라는 이름을 가지고 is_good이라는 값을 가지는 환경 변수 생성
3. echo $ (환경변수 이름 ) ---- // 생성한 환경 변수 조회
ex) echo $DB_Password
- 환경 변수 불러오기 ( dotenv )
1. mkdir good // good 이라는 폴더 생성
cd good // good 이라는 폴더 디렉토리로 접속
2.npm init // 엔터 키를 여러번 입력해 init을 마칩니다.
npm i dotenv // dotenv 모듈을 설치합니다.
----- [커맨드] npm 모듈 dotenv를 설치합니다.
3. 이후 index.js라는 파일을 생성하고 console.log(process.env)를 작성합니다.
(cli의 기본 에디터인 nano를 사용해도 되고 VS Code를 사용해도 좋습니다 )
4. 이후 터미널 창에 node index.js를 입력하면 환경 변수 목록들을 확인할 수 있습니다.
- Node.js에서 환경 변수 영구 적용 ( .env)
명령어 export 로 적용한 환경변수는 현재 사용 중인 터미널에서만 임시로 사용이 가능합니다.
환경변수를 Linux 운영체제에 저장하는 방법은 여러 가지가 있지만, Node.js에서는 파일 .env를 만들어 저장하는 방법을 사용합니다.
-------
1. good 폴더 안에 .env 파일을 생성한 후 원하는 환경 변수를 입력한 뒤 저장합니다
ex) --- DB_Password=is_good
2. 생성해놓은 index.js에 다음의 코드를 입력합니다.
const dotenv = require("dotenv"); // dotenv 모듈 불러오기
dotenv.config(); // .env 파일 인식하고 환경변수 세팅
**dotenv.config(경로)는 원하는 .env파일의 위치를 직접 지정하여 세팅 가능
console.log(process.env.DB_Password);
[코드] index.js에서 dotenv.config 메소드를 이용해, process.env로 .env 파일 내용을 불러올 수 있습니다.
3. 실행해서 환경 변수가 잘 설정되었는지 확인합니다
--- node index.js
아래 사진은 메모리 영역을 도식화한 것인데 커널 영역에 저장되어 있는 환경 변수를 불러와 스택에 옮길 수 있는 것을 알 수 있다. ( env )
링크텍스트 --- 참고