동적 라우트 설계는 URL 패턴, 폴더 이름, params 키, 정적 생성 범위를 함께 맞춘다
한 칸이라도 어긋나면 링크는 열려도 데이터 조회나 빌드 생성에서 문제가 생긴다.
| 설계 질문 | 좋은 기준 | 틀렸을 때 신호 | 확인 위치 |
|---|---|---|---|
| 무엇이 가변인가 | slug, id, username처럼 식별자만 대괄호 | 불필요하게 깊은 URL | 폴더 이름 |
| 키 이름이 맞는가 | [slug] → params.slug | undefined 출력 | page.tsx params 타입 |
| URL 깊이가 맞는가 | /blog/[category]/[slug] | 404 또는 잘못된 값 | 폴더 깊이와 링크 href |
| 정적으로 만들 수 있나 | generateStaticParams 후보 존재 | 빌드 누락 페이지 | 반환 객체 배열 |
| 없는 값은 어떻게 하나 | notFound 또는 fallback 정책 | 빈 화면 또는 오류 | 데이터 조회 분기 |