환경 변수는 이름, 실행 위치, 배포 범위를 함께 봐야 한다

서버 전용 값과 공개 값은 저장소가 같아도 읽히는 위치와 위험도가 다르다.

변수 유형
읽히는 위치
좋은 예
금지 신호
서버 secret
서버 런타임
DATABASE_URL
브라우저 응답에 원문 노출
공개 설정
클라이언트 번들
NEXT_PUBLIC_API_BASE_URL
secret, token, private key 사용
로컬 개발 값
개발 서버
.env.local
Git에 커밋
Vercel Preview
PR deployment
테스트 DB, 테스트 API
Production secret 재사용
Production
운영 deployment
운영 secret, 운영 endpoint
변경 후 재배포 누락
이름부터 본다NEXT_PUBLIC_은 공개 가능하다는 선언이다.
위치를 본다Server Component와 Client Component의 접근 범위를 분리한다.
환경을 본다Development, Preview, Production 값을 따로 검증한다.
시점을 본다빌드 시 주입된 값은 새 배포 전까지 바뀌지 않을 수 있다.