페이지 품질은 라우팅, 데이터, 상태 파일의 순서로 결정된다
page.tsx가 안정적으로 동작하려면 URL 입력이 조회 키로 바뀌고, 로딩/오류/404가 같은 라우트 세그먼트에서 자연스럽게 이어져야 한다.
| 품질 지점 | 좋은 신호 | 나쁜 신호 | 개선 방향 |
|---|---|---|---|
| 라우팅 | 파일 위치와 URL이 바로 대응 | 그룹/동적 세그먼트가 섞여 URL이 모호 | 최종 URL 표를 먼저 작성 |
| 데이터 | 서버에서 필요한 만큼 fetch | 클라이언트에서 다시 전체 fetch | page async와 캐시 정책 정리 |
| params | await params 후 검증 | params.id 동기 접근 | Promise 타입과 notFound 분기 적용 |
| 로딩 | loading.tsx가 느린 구간을 받음 | 빈 화면으로 대기 | 세그먼트별 loading 파일 추가 |
| 오류 | error.tsx와 reset 경계가 있음 | throw가 전체 앱을 깨뜨림 | 오류 경계와 로깅 위치 분리 |