SECRETS
NestJS 환경값 분리
설정 이름은 코드에 남기고, 환경별 값은 런타임에서 주입하며, 비밀 값은 저장소 밖에 둔다.
값의 위치
코드
런타임 환경
비밀 저장소
남겨도 되는 것
ConfigModule, 스키마, 변수 이름NODE_ENV, 포트, 공개 설정비밀을 읽는 경로와 권한 이름
주입하는 것
모듈은 키 이름만 참조하고 실제 값은 몰라야 함
배포 환경 변수, CI/CD Secret, 컨테이너 설정
DB 비밀번호, API 토큰, JWT 서명키
검증 지점
스키마로 필수 키와 타입을 정의
애플리케이션 시작 전에 누락과 형식 오류를 차단
rotation, 접근 권한, 감사 로그를 별도로 관리
커밋 기준
.env.example에는 이름과 형식만 남김로컬과 운영 값은 Git 밖에서 주입
실제 secret 값은 저장소와 로그에 남기지 않음
원칙
코드는 “무엇을 읽을지”만 알고, 값의 출처와 권한은 실행 환경이 책임진다.
사고 신호
실제 비밀번호, 토큰, 개인키가
.env, Git, 로그 중 하나라도 지나가면 즉시 교체한다.