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% 호환