STATIC PARAMS

generateStaticParams 생성 범위

Next.js App Router에서 동적 segment는 모든 값이 자동으로 정적 생성되지 않는다. generateStaticParams는 빌드가 미리 만들 경로를 반환하고, dynamicParams와 revalidate 설정은 목록 밖 요청을 어떻게 처리할지 정한다.

01

후보 수집

CMS, DB, 파일 시스템에서 빌드 시점에 확정 가능한 slug 목록을 가져온다.

권한이 필요한 데이터는 빌드 환경에서도 접근 가능해야 한다
02

params 반환

segment 이름과 같은 key를 가진 객체 배열을 반환한다.

key가 틀리면 경로가 만들어지지 않는다
03

목록 밖 판단

dynamicParams가 false면 없는 값은 404로 닫고, true면 요청 시 생성 가능성을 남긴다.

문서/상품처럼 신규 값이 생기는 주기를 고려한다
04

캐시 갱신

revalidate, tag/path invalidation으로 오래된 정적 페이지의 교체 시점을 정한다.

빌드 목록과 데이터 갱신 정책은 함께 설계한다
05

실패 처리

삭제된 slug, 비공개 항목, fetch 실패를 notFound나 오류 화면으로 분리한다.

없는 데이터와 일시 장애는 사용자 경험이 다르다
params
빌드 목록 미리 만들 경로만 반환해 빌드 시간과 산출물 크기를 통제한다.
전체 상품을 다 넣으면 빌드가 병목이 된다
dynamicParams
목록 밖 요청 false는 닫힌 목록, true는 요청 시 추가 생성을 허용한다.
삭제된 콘텐츠 정책과 맞춰야 한다
revalidate
오래된 페이지 교체 정적 생성 이후 데이터 변경이 화면에 반영되는 주기를 정한다.
즉시성 요구가 크면 tag invalidation을 쓴다
notFound
데이터 부재 처리 비공개, 삭제, 잘못된 slug를 오류와 분리해 404로 닫는다.
fetch 실패를 404로 숨기면 장애 추적이 어려워진다

라우트 확인

빌드 로그 생성된 동적 경로 수와 예상 목록이 맞는지 확인한다.
목록 밖 URL 존재하지 않는 slug가 404인지, 요청 시 생성인지 설정대로 연다.
데이터 변경 수정, 삭제, 신규 추가가 캐시 정책에 맞춰 반영되는지 본다.