括弧付きのフォルダ、たとえば (marketing) は何のためにありますか。
URLに影響を与えずにフォルダの区切りだけを作る仕組みです。レイアウトや loading の適用範囲を絞る用途と、URLを変えずにコードを整理する用途で使われます。
面接官が見ているのはルートグループの用途を言えるか。
これは「app ディレクトリの中にコンポーネントやテスト用のファイルを置いても、URL として公開されてしまいませんか。」への追撃質問です。
よくある答えと、面談でどう見られるか
- URL に現れないフォルダ。レイアウトや loading の適用範囲を区切るために使う
整理のためだけでなく、規約の適用範囲を制御できる点が本質です。 - 整理のためのフォルダで、機能上の意味はない
整理にも使いますが、それだけではありません。グループごとに別のレイアウトを当てられるのが大きな用途です。 - 非公開のフォルダで、外からアクセスできなくなる
それはアンダースコアを付けるプライベートフォルダの説明に近いです。括弧付きは URL から消えるだけで、中の page は普通に公開されます。 - 動的ルートの一種
動的ルートは角括弧です。括弧の種類で役割が違います。
面接官は何を見ているか
- URL に現れないと答えた
- レイアウトや loading の適用範囲を区切る用途を挙げた
- 整理のためだけではないと理解している
模範解答
URL に影響を与えずに、フォルダの区切りだけを作るための仕組みです。(marketing) というフォルダは URL のパスに現れません。
用途は主に2つです。1つは、レイアウトや loading.tsx の適用範囲を絞ること。URL 構造を変えずに「このグループにだけこのレイアウト」ができます。もう1つは、単純に大量のルートを整理することです。
応用として、トップの layout.tsx を外して各グループに layout.tsx を置くと、セクションごとにまったく別のルートレイアウトを持てます。マーケティングページとアプリ本体でヘッダーも何も共有しない、という構成が作れます。