예약 파일명은 페이지, 공유 UI, 로딩, 오류, 404, API 응답의 책임을 나눠 가진다
파일명은 단순한 이름이 아니라 라우트 세그먼트에서 Next.js가 자동으로 인식하는 역할 선언이다.
| 파일명 | 맡는 책임 | 언제 만든다 | 핵심 주의 |
|---|---|---|---|
| page.tsx | 접근 가능한 페이지 UI | URL을 열 수 있어야 할 때 | 해당 폴더의 최종 화면 |
| layout.tsx | 하위 페이지 공유 레이아웃 | 공통 내비게이션/껍데기가 필요할 때 | children을 반드시 렌더링 |
| loading.tsx | 로딩 중 대체 UI | 데이터 대기 시간이 보일 때 | Suspense 경계처럼 동작 |
| error.tsx | 세그먼트 오류 UI | 복구 가능한 오류 화면이 필요할 때 | 보통 use client 필요 |
| not-found.tsx | 404 UI | 없는 콘텐츠를 친절히 안내할 때 | notFound()와 함께 사용 가능 |
| route.ts | HTTP 응답 전용 Route Handler | 화면이 아닌 API 응답이 필요할 때 | 같은 경로에서 page와 충돌하지 않게 설계 |