fallback 옵션은 빌드 시점에 getStaticPaths에서 정의되지 않은 경로로 사용자가 접속했을 때, Next.js가 어떻게 반응할지를 결정하는 설정.
paths에 포함되지 않은 경로로 접속 시 즉시 404 에러 페이지를 반환함.router.isFallback을 활용한 별도의 데이터 부재 처리 로직이 필수임.getStaticPaths 리턴값에 옵션을 명시하고, true 사용 시 컴포넌트 내부 분기 처리가 핵심임.
// getStaticPaths 설정 예시
export async function getStaticPaths() {
return {
paths: [{ params: { id: '1' } }],
fallback: true // 또는 false, 'blocking'
};
}
// fallback: true일 때 컴포넌트 대응
import { useRouter } from 'next/router';
export default function Page({ data }) {
const router = useRouter();
// 아직 데이터가 없는 상태 처리
if (router.isFallback) {
return <div>데이터를 불러오는 중...</div>;
}
return <div>{data.title}</div>;
}
props로 넘어올 데이터가 아직 존재하지 않는 'fallback 상태'를 체크하지 않아 undefined 참조 에러 발생.blocking이나 사전 빌드(paths 포함) 처리가 유리함.fallback으로 생성된 페이지는 기본적으로 캐싱됨. 최신 데이터 반영이 필요하다면 revalidate 옵션(ISR)과 병행 사용 권장.핵심 요약
- 서비스 규모와 SEO 우선순위에 따른 전략적 fallback 옵션 선택 필수.
true사용 시isFallback분기 로직을 통한 런타임 에러 방지 적합.- 효율적인 빌드 시간 관리와 최적의 사용자 경험 제공을 위한 필수 도구임.
출처: 한 입 크기로 잘라먹는 Next.js(v15)