1. 정적 라우팅 (Static Routes)
app/
├── page.tsx # '/'
└── about/
└── page.tsx # '/about'
2. 동적 라우팅 (Dynamic Routes)
app/
└── shop/
└── [id]/ # /shop/1, /shop/2
└── page.tsx
└── [...slug]/ # Catch-all: /shop/a/b/c
└── page.tsx
└── [[...slug]]/ # Optional catch-all: /shop 또는 /shop/a/b
└── page.tsx
3. 패러럴 라우트 (Parallel Routes)
app/
└── (routes)/
├── @modal/ # 모달용 라우트
│ └── page.tsx
├── @sidebar/ # 사이드바용 라우트
│ └── page.tsx
└── layout.tsx # modal, sidebar slot 정의
- 동일 URL에서 여러 페이지 동시 렌더링
- 독립적인 라우팅 상태 유지
4. 인터셉팅 라우트 (Intercepting Routes)
app/
└── (routes)/
├── feed/
│ └── page.tsx
└── @modal/
└── (.)feed/ # 현재 레벨 인터셉트
└── (..)feed/ # 한 레벨 위 인터셉트
└── (...)feed/ # 루트 레벨 인터셉트
- 현재 레이아웃 내에서 다른 라우트 가로채기
- 모달, 슬라이드오버 등에 활용
5. 라우트 그룹 (Route Groups)
app/
├── (marketing)/ # URL에 영향 없음
│ ├── about/
│ └── blog/
├── (shop)/
│ ├── cart/
│ └── products/
└── (admin)/
├── dashboard/
└── settings/
- URL 구조에 영향을 주지 않음
- 라우트를 논리적으로 구성
6. Private 폴더
app/
└── _lib/ # URL 라우팅에서 제외
└── _utils/ # 내부 사용 목적