NPM dotenv: Node.js 환경 변수 관리의 완벽 가이드
NPM dotenv 모듈이란?
dotenv는 Node.js 환경에서 환경 변수(환경 설정값)를 쉽게 관리하기 위해 사용하는 라이브러리입니다. .env 파일에 정의된 환경 변수들을 Node.js 애플리케이션에서 로드하여, 코드 내에서 process.env를 통해 접근할 수 있도록 도와줍니다.
이 라이브러리를 사용하면 환경 변수들을 코드에서 직접 하드코딩하지 않고, 별도의 파일로 분리하여 관리할 수 있어 보안성과 유지보수성이 향상됩니다.
주요 기능과 장점
-
환경 변수 관리
.env파일을 통해 애플리케이션의 민감한 데이터(예: API 키, 데이터베이스 URL, 비밀번호 등)를 저장 및 로드합니다. -
보안 강화
환경 변수는 코드 저장소에 포함되지 않도록.gitignore파일을 통해.env파일을 제외하여 보안을 강화할 수 있습니다. -
환경별 설정
개발, 테스트, 운영 환경 등 다양한 환경에 따라 설정값을 관리할 수 있습니다. -
사용 간단
몇 줄의 코드만으로 환경 변수 설정을 애플리케이션에 적용할 수 있습니다.
설치 및 사용법
1. 설치
npm install dotenv
2. .env 파일 생성
프로젝트 루트 디렉토리에 .env 파일을 생성하고 환경 변수를 정의합니다.
예:
PORT=3000
DB_HOST=localhost
DB_USER=root
DB_PASS=password123
3. 코드에서 dotenv 설정
dotenv를 초기화하고 환경 변수를 불러옵니다.
require('dotenv').config();
// 환경 변수 사용 예시
const port = process.env.PORT;
const dbHost = process.env.DB_HOST;
console.log(`Server will run on port: ${port}`);
console.log(`Database host: ${dbHost}`);
주요 메서드 및 옵션
1. config() 메서드
dotenv의 기본 메서드로, .env 파일을 읽어서 process.env에 환경 변수를 추가합니다.
옵션으로 다른 파일 경로나 설정을 지정할 수 있습니다.
require('dotenv').config({
path: './config/.env', // 기본값: './.env'
encoding: 'utf8', // 파일 인코딩 (기본값: 'utf8')
debug: true // 디버깅 정보 출력
});
2. 파싱(parse())
파일 내용을 직접 문자열로 전달하여 파싱할 수 있습니다.
const dotenv = require('dotenv');
const envConfig = dotenv.parse('PORT=8080\nNODE_ENV=development');
console.log(envConfig); // { PORT: '8080', NODE_ENV: 'development' }
.env 파일 주의사항
- 형식
KEY=VALUE형태로 작성하며, 공백 없이 정의해야 합니다.- 값에 특수문자가 포함될 경우, 따옴표로 감쌀 수 있습니다.
PASSWORD="my@secure$pwd"
- 주석 사용
#로 시작하는 행은 주석으로 처리됩니다.# 이 줄은 주석입니다 PORT=3000 - 환경 변수는 문자열로 저장됨
.env파일에서 설정된 모든 값은 문자열로 처리됩니다.
.env 파일 관리 팁
.gitignore에 추가
.env파일을 버전 관리에서 제외해야 민감한 정보가 외부에 노출되지 않습니다.
.gitignore파일:.env- 환경별 설정 파일
각 환경에 따라 다른.env파일을 사용할 수 있습니다..env.development.env.production.env.test
코드에서 동적으로 파일을 선택하도록 설정:
const envFile = process.env.NODE_ENV === 'production' ? '.env.production' : '.env.development'; require('dotenv').config({ path: envFile });
주의사항
dotenv는 프로덕션 환경에서 사용하는 것이 아니라 로컬 개발 및 간단한 환경 변수 관리를 위해 설계되었습니다.- 클라우드 환경(AWS, Heroku 등)에서는 해당 플랫폼이 제공하는 환경 변수 관리 기능을 사용하는 것이 권장됩니다.
dotenv는 Node.js 프로젝트에서 환경 변수 관리의 필수 도구 중 하나로 간단하면서도 강력한 기능을 제공합니다. 🎯
Leave a comment