page.tsx는 화면 UI, 서버 데이터, URL 입력을 모두 받지만 전부 혼자 해결하지 않는다
페이지 컴포넌트는 라우트의 중심 파일이지만 공통 레이아웃, 상태 경계, 클라이언트 상호작용은 주변 파일과 나눠야 한다.
| 책임 | page.tsx | 주변 파일 | 분리 기준 |
|---|---|---|---|
| 공통 껍데기 | 직접 담당하지 않음 | layout.tsx | 여러 페이지가 공유하면 layout |
| 고유 화면 | 해당 URL의 본문 UI | page.tsx | 그 경로에만 필요한 내용 |
| 데이터 준비 | 서버 fetch, params 검증 | loading.tsx, error.tsx | 느림/실패 상태는 주변 파일 |
| 동적 URL | params/searchParams 처리 | [id] 폴더, generateStaticParams | 빌드 시 만들 경로가 있는가 |
| 상호작용 | 초기 상태만 전달 | Client Component | onClick, useState, useRouter가 필요한가 |