1.0. ISR (Incremental Static Regeneration)란?

ISR은 Next.js의 정적 사이트 생성(SSG)의 한계를 극복하기 위해 도입된 개념으로, 특정 페이지를 정적 페이지처럼 빠르게 제공하면서도 일정 주기로 새롭게 갱신할 수 있는 기능을 제공한다.

1.1. ISR이 왜 필요할까?

1.2. ISR 동작 방식

ISR은 getStaticProps에서 revalidate 옵션을 설정하면 사용할 수 있다.

  1. 처음 페이지 요청 시, 정적 페이지(SSG)가 제공됨
  2. 일정 시간이 지나면(예: revalidate: 10 → 10초 후) 백그라운드에서 새로운 데이터를 가져와 정적 페이지를 갱신
  3. 이후 새로운 요청이 들어오면 갱신된 최신 페이지를 제공
export async function getStaticProps() {
  const res = await fetch("<https://api.example.com/data>");
  const data = await res.json();

  return {
    props: { data },
    revalidate: 10, // 10초마다 페이지를 갱신
  };
}
// 10초 마다 페이지가 백그라운드에서 재생성된다.

1.2.1. Next 13 vs Next 14

Next.js 14에서 ISR(Incremental Static Regeneration)의 사용 방식은 Next.js 13과 거의 동일하지만, 일부 설정 방식이 개선되었다.

revalidate 설정 방식

차이점