한 걸음씩 기록하며
[dotenv]란 무엇인가 본문
0. 환경 변수 (Environment Variables)
환경 변수란 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임이다.
OS의 환경변수는 시스템의 실행 파일이 놓여 있는 디렉토리의 지정 등 OS 상세서 동작하는 응용 소프트웨어가 참조하기 위한 설정이 기록된다.
- 우리가 집에서만 개발을 한다면 문제가 없겠지만, 우리는 다양한 환경과 OS에서 작업하게 된다.
- 그렇기 때문에 개발을 함에 있어서 운영 체제 레벨에서 관리하는 환경 변수를, 우리가 직접 설정하고 관리하는 작업이 필요하다.
- 이것을 위한 모듈이 "dotenv"이다.
1. dotenv
- dotenv는 일반적으로 .env라는 파일을 만들어서, 환경 변수 및 유출되면 안되는 정보를 담는 방식으로 활용된다.
- 해당 .env 파일은 원격저장소에 올리지 않고(.ignore와 같이), 해당 정보를 환경 변수로 저장해놓고 사용하는 것이 일반적이다.
Node.js에서 환경 변수에 접근할 때는 process.env 라는 자바스크립트 객체를 사용한다.
process는 전역 객체여서 별도의 임포트를 하지 않고, 애플리케이션 어디에서든 접근이 가능하다.
1) npm 설치
먼저 dotenv 패키지를 설치해야한다. 터미널에서 아래의 코드로 설치한다.
$ npm i dotenv
2) .env 파일 셋팅
아래와 같이 .env 파일을 만든다.
그리고 .env 파일에 환경 변수나 유출되면 안되는 정보를 담는다.
3) app.py에서 .env 불러오기
app.py에서 아래와 같은 코드를 작성하면 .env 안에 있는 값들을 가져올 수 있다.
(app.py에서 선언하면 다른 파일에서 다른 작업을 할 필요가 없다. 모든 파일에서 4)의 방법으로 다 사용할 수 있다.)
require('dotenv').config()
4) process.env 로 사용하기
3)의 과정을 거쳤다면 프로젝트 내의 모든 파일에서 .env 내의 값을 사용할 수 있다.
아래의 예시를 살펴보며 설명하겠다.
아래의 코드는 jwt 토근으로 암호화하는 과정이다. 그런데 'ddubuck-ddubuck-cho' 라는 암호키를 유출되면 위험하다.
바로 이럴 때 .env에 암호키를 넣고 그 암호키를 process.env를 이용하여 불러오는 것이다.
참고
https://www.youtube.com/watch?v=Kt4asIZTV_8
https://www.youtube.com/watch?v=OEZedYK5biA
https://www.npmjs.com/package/dotenv
https://velog.io/@public_danuel/process-env-on-node-js
https://www.daleseo.com/js-node-process-env/
'JavaScript & Node.js' 카테고리의 다른 글
[Node.js 비동기 답게 쓰기] await => Promise.allSettled (0) | 2022.04.17 |
---|---|
[MongoDB 계정 사용하여 권한 부여하기 (feat. Node.js, robo 3T] (0) | 2022.02.15 |
[Generator]란 무엇인가 (0) | 2022.02.09 |
[Iteration, Iterable, Iterator]이란 무엇인가 (0) | 2022.02.09 |
[JSON & Ajax] 개념 간단 정리 (0) | 2022.02.06 |
Comments