[DB] 환경변수 사용하기 1 - dotenv

설정·2020년 12월 2일
13

✔ 환경변수란?

프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임 [위키피디아]

  • 환경변수는 OS입장에서 해당 프로세스를 실행시키기 위하여 참조하는 변수이다.
  • 우리가 컴퓨터로 하는 모든 작업들은(게임, 인터넷창띄우기, 그림판, 메모장, ...) OS라는 프로그램에 의하여 실행되는 자식프로세스인데 이 프로세스들을 실행킬 때 OS입장에서 참조하는 변수가 바로 환경변수이다.

✔ dotevn(.env)란?

Dotenv is a zero-dependency module that loads environment variables from a .env file into process.env. Storing configuration in the environment separate from code is based on The Twelve-Factor App methodology. [dotenv 공식문서]

해석 : Dotenv는 .env 파일에서 process.env로 환경 변수를 로드하는 제로 종속성 모듈입니다.

  • dotenv는 환경변수를 .env파일에 저장하고 process.env로 로드하는 의존성 모듈이다.
  • dotenv를 사용하는 이유는 우리가 개발을 하는 과정에서 서버주소, 고유 API KEY 값 등 필요한 정보들을 저장을 하게 된다. 그리고 이러한 정보들은 민감한 정보임과 동시에 보안이 이루어져야 하는 정보들이다. 만약 이러한 정보들이 오픈소스(깃허브)에 공개될 경우, 해킹을 당하거나 보안적인 면에서 위험할 수 있다.
  • 이러한 문제로 dotenv패키지를 이용하여 환경변수 파일(.env)을 외부에 만들어 접근할 수 있게 하고, 개발 초기 단계에서 세팅하기를 권고한다.

✔ dotenv 패키지

💣 dotenv 설치

# npm

npm install dotenv

💣 .env 파일 생성

# .env 파일

DATABASE_NAME='[DB명]'
DATABASE_USERNAME='root'
DATABASE_PASSWORD=''
  • 설치 후 .env파일을 루트경로에 생성한 후 안에 들어갈 텍스트는 반드시 이름 = 값형식으로 적어준다.
    [환경변수는 특정 process를 위한 key-value 형태의 변수]

💣 require('dotenv').config()

# 해당 파일

//import dotenv from 'dotenv'
require('dotenv').config();
  • .env를 사용하고자 하는 파일 안에 dotenv를 부른다.
  • dotenv.config()는 현재 디렉토리의 .env파일을 자동으로 인식하여 환경변수를 세팅한다.
  • dotenv.config(경로)는 원하는 .env파일의 위치를 직접 지정하여 세팅할 수 있다.

💣 process.env.변수이름

# 해당 파일

user: process.env.DATABASE_USERNAME || 'root',
password: process.env.DATABASE_PASSWORD || '',
database: process.env.DATABASE_NAME || '[DB명]'
  • .env에 저장되어 있는 변수들을 부를 때는 process.env.변수이름으로 불러주면 된다.
  • 환경변수는 key-value 형태로 저장이 되며, 부를 때는 process.env[key]형태로 부른다.
  • process.env.NODE_ENV 형태

✔ dotenv 주의사항

# .gitignore 파일

# dotenv environment variables file
.env

.env파일에 저장하더라도 .env파일을 오픈소스(깃허브)에 올린다면 공개하는 것과 다름없기때문에 .gitignore파일에 .env파일을 추가하여 무시해준다.


✔ 추가

.env파일은 루트에 위치해야한다.
이거 위치 제대로 설정안해주면 에러난다.

0개의 댓글