middleware という名前を知っていましたが、proxy.ts は初耳です。中身も変わったのですか。
Next.js 16 でのファイル名の変更です。公式のアップグレード手順にも改名の項目があり、コードモッドが自動で書き換えます。名前が実態に寄せられた、という位置づけです。
面接官が見ているのは🔴 改名を「名前が変わっただけ」と正しく扱えるか。知ったかぶりを検出する。
これは「全ルートに共通で認証チェックを入れたい。どこに書きますか。」への追撃質問です。
よくある答えと、面談でどう見られるか
- 主にファイル名の変更。15 以前は middleware.ts のまま
コードモッドが自動で書き換えます。両方知っていると答えるのが実務的です。 - 別物の新機能なので、middleware とは使い分ける
使い分けるものではありません。同じ役割のファイルが改名されたものです。 - 改名されたもので、役割に合わせて名前が変わったと理解している
背景まで押さえられています。middleware という語が広すぎて、実際の役割(ルートに届く前の転送や書き換え)と受け取られ方がずれていた、という経緯です。 - middleware が非推奨になり、proxy に移行が必要になった
結果として移行は必要ですが、「非推奨」ではなく改名です。コードモッドで機械的に書き換わる程度の変更、と理解しておくと落ち着いて対応できます。
面接官は何を見ているか
- 主にファイル名の変更だと理解している
- 15 以前は middleware.ts のままだと知っている
- 名前が変わった理由を推測できた
模範解答
Next.js 16 でのファイル名の変更です。公式のアップグレード手順にも「middleware.<拡張子> を proxy.<拡張子> に改名する」という項目があり、コードモッドが自動で書き換えます。
名前が変わった背景としては、middleware という語が「サーバー処理の途中に挟む層」を広く指すため、実際の役割(リクエストがルートに届く前に転送や書き換えを行う)とずれて受け取られやすかった、という事情があります。proxy の方が、やっていることに近い名前です。
面談での扱い方としては、両方知っていると答えるのが一番良いです。現場のコードは 15 以前のままであることも多いので、「16 で proxy.ts になったが、参画先が 15 なら middleware.ts のままのはず」と言えると、実際に手を動かしている感じが出ます。
逆に危ないのは、改名を知らずに「middleware.ts が無いのはおかしい」と決めつけることです。バージョンを確認する癖があるかを見られています。