1 분 소요

안녕하세요. Nerd Lee 입니다.

이번 글은 .env 파일을 어떻게 하면, github에 올려도
클라우드 서비스에서 구동이 될 수 있는 지에 대해서 알아보도록 하겠습니다.


- 환경 변수 관리하기 -


1. 설치하기

  • npm을 이용하여 dotenv 라이브러리를 다운받습니다.
npm i dotenv

2. .env 파일 작성하기

  • 프로젝트 폴더 최상단에 .env 라고 파일을 만들어줍니다.
    그럼 process.env 라는 코드로 디렉토리에 있는 .env 파일을 읽어오는 역할을 합니다.
AWS_KEY=어쩌구 저쩌구
AWS_SECRET_KEY=어쩌구 저쩌구

3. require 또는 import로 dotenv 라이브러리 사용하기

  • require 또는 import를 이용하여, dotenv를 사용하면 됩니다.

require 사용 방법

require("dotenv").config();

console.log("AWS_KEY : ", process.env.AWS_KEY);
console.log("AWS_SECRET_KEY : ", process.env.AWS_SECRET_KEY);

import 사용 방법

import dotenv from "dotenv";
dotenv.config();

console.log("AWS_KEY : ", process.env.AWS_KEY);
console.log("AWS_SECRET_KEY : ", process.env.AWS_SECRET_KEY);
  • 이렇게 사용하면, .gitignore에 .env 파일을 넣어놓더라도 사용을 할 수 있게 됩니다.

위 코드 실행 시 출력 결과

AWS_KEY : 어쩌구 저쩌구
AWS_SECRET_KEY : 어쩌구 저쩌구

4. 주의사항

config() 함수를 맨 위에 호출을 해야 합니다.

console.log("AWS_KEY : ", process.env.AWS_KEY);
console.log("AWS_SECRET_KEY : ", process.env.AWS_SECRET_KEY);

require("dotenv").config();
  • 위와 같이 코드를 작성하게 되면, 빈 값이 뜨게 됩니다. 그렇기 때문에 3번과 같이 위에 config() 함수를 호출을 하고 사용하시는 걸 주의하시길 바랍니다.

만약 다른 폴더에 .env를 만들었다면?

require("dotenv").config({ path: "해당 .env path 작성" });
  • config() 함수 안에 object 형식으로, path : value를 작성해주셔야 사용이 가능해집니다.

5. Heroku에 env파일 적용하기

heroku-dotenv 설치

npm i -g heroku-dotenv

heroku-dotenv push 하기

heroku-dotenv push
  • 이렇게 설치하고, 명령어를 입력해서 push를 하게 되면, 해당 키 값의 환경변수를 heroku 서버에 전달했다는 식의 log가 출력이 되고 사용이 가능해집니다.

이 글이 도움이 되셨다면 댓글 부탁드립니다^^
다음 글로 찾아오겠습니다!