IT-Q

NEXT_PUBLIC_ を付けた変数は、いつクライアントに入りますか。

ビルド時にバンドルへ書き込まれます。実務で効くのは、ビルド後に環境変数を変えても反映されないことです。イメージを1つ作って各環境で使い回す運用だと必ず踏みます。

面接官が見ているのはビルド時に埋め込まれることの理解。

これは「APIキーのような秘密情報は、どう扱いますか。」への追撃質問です。

よくある答えと、面談でどう見られるか

  • ビルド時に埋め込まれる。実行時に変えても反映されない
    イメージを使い回すコンテナ運用で必ず踏む論点です。
  • 実行時にサーバーから配信される
    されません。ビルド時に値そのものがコードへ埋め込まれます。だからビルドし直さない限り変わりません。
  • 初回アクセス時にクライアントへ渡される
    渡すのではなく、最初から入っています。
  • ビルド時に埋め込まれるが、サーバー側で読む変数は実行時に読まれる
    両方を区別できています。同じ .env に書いてあっても挙動が違う、という点が要点です。

面接官は何を見ているか

  • ビルド時に埋め込まれると答えた
  • 実行時に変えても反映されないと理解している
  • だからコンテナ運用で詰まる、と繋げられた

模範解答

ビルド時にバンドルへ埋め込まれます。

実務で効いてくるのは、ビルド後に環境変数を変えても反映されないことです。Docker イメージを1つ作って開発・ステージング・本番で使い回す運用をしていると、NEXT_PUBLIC_ の値だけがビルド時の環境のまま固定されます。

サーバー側でだけ読む変数は実行時に読まれるので、この問題は起きません。同じ .env に書いてあっても挙動が違う、という点が混乱のもとです。