Sungtt

중요한 변수값(서버 속성 및 포트)을 환경변수로 사용하기 본문

Node

중요한 변수값(서버 속성 및 포트)을 환경변수로 사용하기

sungtt 2022. 4. 17. 08:36

개요

노트북과 데스크톱을 오가며 작업할 때, 깃을 통해 프로젝트 파일을 업데이트해왔다.

이때 파일 내에 mysql에 연동하는 DB계정 또는 포트, 토큰 생성용 보안키 등

외부에 노출되어선 안될 코드들이 있었다.

 

각각의 로컬 환경에서 개발하기 때문에 DB를 연동할 때에는

코드를 다시 작성해야 하는 번거로움이 있었다.

 

이런 번거로움과 보안성을 모두 잡을 수 있는 환경변수와

그 환경변수를 사용하는데 유용한 모듈인 dotenv를 통해

서버에 들어가 있는 중요한 변수들을 따로 빼놓을 것이다.

서버스크립트에 다 들어가있는 보안키와 DB연동코드

 

 

dotenv 설치

dotenv 사용을 위해 모듈을 먼저 설치해준다.

npm install dotenv
또는
yarn add dotenv

 

. env 파일 생성

루트 경로에 환경변수 파일을 생성한다. 

//.env
SECRET_TOKEN = '보안키'
DB_password = 'DB비밀번호'

 

환경변수 읽어오기

환경변수를 사용할 js파일 가장 상단에 dotenv를 불러오는 코드를 추가해준다.

가장 상단이 아니더라도, 환경변수를 사용하기 전에는 미리 호출해야 사용하는데 지장 없음은 당연하다.

require('dotenv').config();

 

환경변수 사용하기

process.env. 변수명으로 접근하여 변수를 사용할 수 있다.

//상단
require('dotenv').config();


const SECRET_TOKEN = process.env.SECRET_TOKEN;

const db = mysql.createConnection({ 
    password: process.env.DB_password,
});

 

다른 경로의 환경변수 사용하기

루트 경로가 아닌 다른 경로의 환경변수 사용 시 config 메서드 안에 path를 작성해줘야 한다.

다른 이름의. env 파일도 사용 가능하다.

// 상대 경로의 .env 파일 불러오기
require('dotenv').config({ path: "../.env" }); 

// 상대 경로의 test.env 파일 불러오기
require('dotenv').config({ path: "../src/test.env" });

// 절대 경로의 test.env 파일 불러오기
require('dotenv').config({ path:"C:/User/Desktop/test.env" });

 

후기

이어서 데스크톱. gitignore 파일에. env파일을 추가해주고 push,

노트북에서 pull 하여 당겨온 뒤 dotenv모듈을 설치해주고

. env파일을 따로 생성해주니 각 환경에 맞게 구동될 수 있었다.

이제 맘 편히 깃을 통해 작업환경을 드나들 수 있다!

Comments