App Router는 폴더를 URL 세그먼트로 읽고 page.tsx가 있을 때 실제 페이지를 만든다
폴더만 만든다고 페이지가 생기는 것은 아니다. 각 세그먼트의 특수 파일이 어떤 책임을 갖는지 함께 봐야 한다.
| 구조 | URL/역할 | 필수 여부 | 읽는 법 |
|---|---|---|---|
| src/app/page.tsx | / 루트 페이지 | 루트 화면에 필요 | 폴더 경로가 URL이 되고 page가 화면이 됨 |
| src/app/dashboard/page.tsx | /dashboard 페이지 | 해당 URL에 필요 | dashboard 폴더가 URL 세그먼트 |
| src/app/products/[id]/page.tsx | /products/123 같은 동적 페이지 | 동적 경로에 필요 | 대괄호 폴더가 URL 값을 받음 |
| layout.tsx | 하위 페이지 공통 껍데기 | 최상위는 필수 | children을 감싸며 중첩됨 |
| loading/error/not-found.tsx | 상태별 보조 UI | 선택 | 해당 세그먼트의 로딩, 오류, 404를 담당 |