App Router에서는 app/ 내부의 폴더 구조가 라우트를 정의합니다. 작성해야 할 라우터 설정이 없습니다. 각 폴더는 URL 세그먼트이고, 그 안의 특수 파일들이 해당 세그먼트가 무엇을 렌더링할지 정의합니다.
폴더 = URL 세그먼트
text
app/
page.tsx → /
about/page.tsx → /about
blog/page.tsx → /blog
blog/[slug]/page.tsx → /blog/:slug (동적 세그먼트)
shop/(sale)/page.tsx → /shop (라우트 그룹 — 괄호는 URL에 더해지지 않음)
특수 파일들
각 폴더는 예약된 파일명을 가질 수 있으며, 각각 특정 역할을 합니다:
text
page.tsx → 라우트의 UI (세그먼트를 라우팅 가능하게 하려면 필수)
layout.tsx → 하위 라우트 전반에 유지되는 공유 래퍼
loading.tsx → 로딩 UI (페이지를 <Suspense>로 자동 감쌈)
error.tsx → 세그먼트의 에러 바운더리
not-found.tsx→ 404 UI
route.ts → API 엔드포인트 (페이지 대신)
