Node.js 환경변수 관리 - dotenv-vault로 팀 전체 설정 동기화하기
문제 상황
회사 프로젝트가 마이크로서비스로 분리되면서 환경변수가 30개를 넘어갔다. .env.example을 만들어두긴 했지만, 실제 값은 각자 Slack DM으로 받거나 1Password에서 찾아야 했다.
특히 외부 API 키가 추가될 때마다 "XX API 키 추가했습니다"라는 메시지가 개발 채널에 올라왔고, 누군가는 놓치기 일쑤였다.
dotenv-vault 도입
npm install dotenv-vault-core
npx dotenv-vault new
기존 .env 파일을 암호화해서 저장하고, 팀원들과 공유할 수 있는 구조다. 실제 환경변수는 암호화된 채로 Git에 커밋되고, 각자 복호화 키만 가지고 있으면 된다.
// .env.vault 파일이 생성됨 (암호화된 상태)
DOTENV_VAULT_DEVELOPMENT="encrypted_string..."
DOTENV_VAULT_PRODUCTION="encrypted_string..."
실제 적용
로컬 개발 환경 설정:
npx dotenv-vault login
npx dotenv-vault pull
프로덕션 배포 시에는 DOTENV_KEY만 환경변수로 등록하면 됐다. Vercel, AWS Lambda 모두 동일한 방식으로 작동했다.
// app.js
require('dotenv-vault-core').config();
console.log(process.env.DATABASE_URL); // 정상 작동
결과
- 신규 팀원 온보딩 시간 30분 → 5분
- 환경변수 누락으로 인한 로컬 빌드 실패 제로
- Slack에 API 키 평문으로 올리는 일 사라짐
아직 팀 전체가 익숙해지는 중이지만, 확실히 관리 포인트가 줄었다. 다만 암호화 키 자체를 잃어버리면 복구가 불가능하니 1Password에 백업해두는 게 필수다.
참고
- 무료 플랜은 3명까지 가능
.env.vault파일은 Git에 커밋해도 안전함- 기존 dotenv와 100% 호환