IT-Q

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 が無いのはおかしい」と決めつけることです。バージョンを確認する癖があるかを見られています。