app 폴더의 계층 구조는 URL 경로와 직접 매핑된다. 그러나 라우트 그룹을 생성하여 이러한 패턴을 벗어날 수 있다. 라우트 그룹은 괄호로 폴더 이름을 감싸면 생성할 수 있다. (폴더이름)
라우트 그룹은 다음과 같은 용도로 사용할 수 있다.
예시
URL에 영향을 주지 않고 라우트를 구성하려면, 관련된 라우트를 함께 유지하기 위해 그룹을 만든다. 괄호 안의 폴더는 URL에서 생략된다. ( 예: (marketing) 또는 (shop) )

(marketing) 및 (shop) 내부의 경로들이 동일한 URL 계층 구조를 공유하더라도, 각 그룹에 대해 다른 레이아웃을 생성할 수 있다. 이를 위해 해당 폴더 내에 layout.js 파일을 추가한다.

특정 라우트를 레이아웃에 포함하려면, 새로운 라우트 그룹을 생성하고 ( 예: (shop) ) 동일한 레이아웃을 공유하는 라우트를 해당 그룹으로 이동시킨다 ( 예: account와 cart ).
그룹 외부의 라우트는 레이아웃을 공유하지 않는다. ( 예: checkout ).

여러 개의 루트 레이아웃을 생성하려면 최상위 레벨의 layout.js 파일을 제거하고 각 라우트 그룹 내에 layout.js 파일을 추가한다. 이는 완전히 다른 UI 또는 경험을 가진 섹션으로 애플리케이션을 분할하는 데 유용하다. <html> 및 <body> 태그를 각 루트 레이아웃에 추가해야 한다.
아래 예시에서 (marketing)과 (shop) 모두 자체적인 루트 레이아웃을 갖고 있다.

(marketing)/about/page.js와 (shop)/about/page.js는 둘 다 /about으로 해결되어 오류가 발생한다.app/(shop)/layout.js를 사용하는 /cart에서 app/(marketing)/layout.js를 사용하는 /blog로 이동하는 경우 전체 페이지 로드가 발생한다. 이는 여러 개의 루트 레이아웃에만 해당한다.[출처]
https://nextjs.org/docs/app/building-your-application/routing/route-groups