문서
App Router 사용하기
라우트 그룹

라우트 그룹

app 디렉토리에서 중첩된 폴더는 일반적으로 URL 경로에 매핑됩니다. 그러나 폴더를 라우트 그룹으로 표시하여 폴더가 라우트의 URL 경로에 포함되지 않도록 할 수 있습니다.

이를 통해 URL 경로 구조에 영향을 주지 않고 라우트 세그먼트와 프로젝트 파일을 논리적 그룹으로 구성할 수 있습니다.

라우트 그룹은 다음과 같은 경우에 유용합니다:

규칙

라우트 그룹은 폴더 이름을 괄호로 감싸서 생성할 수 있습니다: (folderName)

예시

URL 경로에 영향을 주지 않고 라우트 구성

URL에 영향을 주지 않고 라우트를 구성하려면 관련 라우트를 함께 유지하는 그룹을 만듭니다. 괄호 안의 폴더는 URL에서 생략됩니다(예: (marketing) 또는 (shop)).

라우트 그룹으로 라우트 구성

(marketing)(shop) 내부의 라우트가 동일한 URL 계층을 공유하더라도 각 폴더 내에 layout.js 파일을 추가하여 각 그룹에 대해 다른 레이아웃을 만들 수 있습니다.

여러 레이아웃이 있는 라우트 그룹

특정 세그먼트를 레이아웃에 포함

특정 라우트를 레이아웃에 포함하려면 새 라우트 그룹(예: (shop))을 만들고 동일한 레이아웃을 공유하는 라우트를 그룹으로 이동합니다(예: accountcart). 그룹 외부의 라우트는 레이아웃을 공유하지 않습니다(예: checkout).

옵트인 레이아웃이 있는 라우트 그룹

여러 루트 레이아웃 생성

여러 루트 레이아웃을 만들려면 최상위 layout.js 파일을 제거하고 각 라우트 그룹 내에 layout.js 파일을 추가합니다. 이는 완전히 다른 UI나 경험을 가진 섹션으로 애플리케이션을 분할하는 데 유용합니다. <html><body> 태그는 각 루트 레이아웃에 추가해야 합니다.

여러 루트 레이아웃이 있는 라우트 그룹

위의 예시에서 (marketing)(shop)은 각각 자체 루트 레이아웃을 가집니다.


알아두면 좋은 점:

  • 라우트 그룹의 이름 지정은 조직을 위한 것 외에는 특별한 의미가 없습니다. URL 경로에 영향을 주지 않습니다.
  • 라우트 그룹을 포함하는 라우트는 다른 라우트와 동일한 URL 경로로 해결되어서는 안 됩니다. 예를 들어, 라우트 그룹은 URL 구조에 영향을 주지 않으므로 (marketing)/about/page.js(shop)/about/page.js는 모두 /about으로 해결되어 오류를 발생시킵니다.
  • 최상위 layout.js 파일 없이 여러 루트 레이아웃을 사용하는 경우, 홈 page.js 파일은 라우트 그룹 중 하나에 정의되어야 합니다. 예: app/(marketing)/page.js.
  • 다른 루트 레이아웃으로 이동하면 전체 페이지가 다시 로드됩니다(클라이언트 측 네비게이션과는 다릅니다). 예를 들어, app/(shop)/layout.js를 사용하는 /cart에서 app/(marketing)/layout.js를 사용하는 /blog로 이동하면 전체 페이지가 다시 로드됩니다. 이는 다른 루트 레이아웃 간 이동에만 적용됩니다.