설정 경계
코드, 환경, 비밀 저장소의 책임을 나눈다
설정값은 코드에서 읽지만, 실제 비밀 값은 코드와 저장소 밖에서 주입되어야 운영 환경을 안전하게 바꿀 수 있다.
환경 분리
dev · staging · production 값 분리
같은 코드가 환경별 변수로 다르게 동작하게 만든다.
스키마 검증
필수 값과 형식을 시작 시점에 검사
누락된 DB URL이나 잘못된 PORT는 부팅 단계에서 실패시킨다.
Git 제외
.env와 키 파일은 저장소에 남기지 않음
.env.example에는 이름과 형식만 남긴다.
런타임 주입
CI/CD Secret 또는 Secret Manager
실제 값은 배포 시점이나 실행 환경에서 주입한다.
원칙: 이름은 코드에 있어도 되지만, 실제 비밀 값은 코드와 Git 기록에 남기지 않는다.