Env Vars

서버/클라이언트 환경 변수 경계

Next.js 환경 변수는 서버 전용 값과 NEXT_PUBLIC_ 값으로 노출 범위가 갈린다. 비밀 값은 클라이언트에 보내면 안 된다.

환경 변수가 노출되는 범위

visibility

서버 전용

DATABASE_URL, API_SECRET처럼 비밀 값은 서버 코드에서만 읽는다.

NEXT_PUBLIC_

브라우저 번들에 포함될 수 있어 공개 가능한 값만 둔다.

빌드 시점

클라이언트 공개 변수는 빌드 결과에 고정될 수 있다.

런타임 값

서버에서 읽는 값은 배포 환경의 런타임 설정과 연결된다.

.envprocess.envserver onlyNEXT_PUBLICclient bundle
읽는 법

환경 변수 이름은 보안 경계다. 클라이언트에서 필요한 값인지 아닌지 먼저 나눠야 사고를 막을 수 있다.