레이아웃의 작동 방식
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
Next.js를 사용하는 웹 개발자, 특히 레이아웃 구조 설계에 관심 있는 분
핵심 요약
layout.tsx
는React component
를children
으로 받아 헤더, 푸터 등 공통 컴포넌트를 구성app
디렉토리의 기본layout.tsx
는 삭제 불가로, 삭제 시 자동 재생성page.tsx
는layout.tsx
와 동일한 디렉토리에 있어야 경로 접근 가능
섹션별 세부 요약
- 레이아웃 파일의 역할
layout.tsx
는app
디렉토리의 모든page.tsx
파일을 자동으로 감싸 UI 생성- 파일 시스템 규칙에 따라
layout.tsx
를 수동으로import
하거나 연결할 필요 없음
- 디렉토리 구조 예시
app/user/username/layout.tsx
와 같은 중첩 디렉토리에서layout.tsx
를 생성하면 상위 레이아웃 렌더링 중단page.tsx
가layout.tsx
와 동일한 디렉토리에 있어야 경로 접근 가능
- 경로 접근성 조건
layout.tsx
는 경로를 생성하지 않음,page.tsx
가 반드시 존재해야 경로 활성화/user/username
경로에page.tsx
가 없으면 404 에러 발생
결론
Next.js의 레이아웃은 파일 시스템 규칙을 기반으로 자동 생성되며, 중첩된 layout.tsx
는 하위 경로에 대한 루트 레이아웃으로 작동. page.tsx
와 layout.tsx
의 디렉토리 위치 관계를 철저히 확인해야 하며, page.tsx
는 반드시 존재해야 경로가 활성화됨. 실무에서는 중첩 레이아웃의 계층 구조와 경로 접근성을 고려한 디렉토리 설계가 필수적.