하나의 레이아웃 안에서 여러 개의 페이지를 동시에, 독립적으로 렌더링하는 기능. 일반적으로 하나의 URL은 하나의 페이지 컴포넌트만 매핑되나, 병렬 라우트를 사용하면 동일한 레이아웃 내에서 여러 '슬롯(Slot)'을 정의하여 각기 다른 경로의 콘텐츠를 한 화면에 조합 가능.
@ 기호를 붙여 정의(예: @analytics, @team). 이 폴더명은 URL 경로에는 포함되지 않는 논리적 구분선 역할.page.js 파일 생성.layout.js에서 해당 슬롯들을 props로 받아 원하는 위치에 배치.// app/layout.js
export default function Layout({ children, analytics, team }) {
return (
<div>
{children} {/* 기본 페이지 */}
<section>{analytics}</section> {/* @analytics 슬롯 */}
<section>{team}</section> {/* @team 슬롯 */}
</div>
)
}
default.js 파일을 생성하여 초기 상태나 폴백(Fallback) UI를 제공해야 함.layout.js에서 받는 props 이름과 @폴더명이 정확히 일치해야 함. 대소문자 구분 필수.핵심 요약
- @ 기호를 사용한 슬롯 폴더로 URL 경로 영향 없이 독립적 영역 정의.
- 부모 레이아웃에서 props 형태로 전달받아 복잡한 대시보드 UI 구현에 최적.
- 새로고침 시 발생할 수 있는 404 오류 방지를 위해 default.js 파일 작성 필수.