layout, template, page는 유지 범위와 재생성 시점으로 선택한다
세 파일은 모두 UI를 만들지만 유지되는 시간과 맡는 책임이 다르다.
| 파일 | 언제 쓰나 | 유지/교체 방식 | 대표 실수 |
|---|---|---|---|
| layout.tsx | 공유 UI와 상태 유지가 필요할 때 | 같은 세그먼트 이동 중 유지 | children 누락 |
| template.tsx | 이동마다 새 인스턴스가 필요할 때 | 라우트 전환 때 재생성 | layout과 같은 용도로 남용 |
| page.tsx | URL별 고유 화면이 필요할 때 | 해당 URL에서만 렌더 | 공통 UI를 page마다 복사 |
| loading.tsx | 데이터 대기 UI가 필요할 때 | 세그먼트 단위 대체 UI | 너무 넓은 구간에 둬 전체가 가려짐 |
| error.tsx | 세그먼트 오류 복구가 필요할 때 | 가까운 오류 경계에서 처리 | use client 누락 |