런타임 중에 정적 페이지를 만들거나 업데이트되게 해주는 SSG와 SSR의 하이브리드 솔루션입니다
설명
-
ISR(증분 정적 재생성)은 전체 사이트를 다시 빌드할 필요 없이 페이지별로 정적 생성을 사용할 수 있게 해준다.
-
즉, Static Site Generator 와는 달리 ISR은 데이터가 업데이트 되면 해당 페이지만 다시 생성하고 나머지 페이지는 그대로 유지할 수 있다.
-
Next.js에서 제공하는 기능이기도 하다.
-
동작 방식은 아래와 같다.
- SSR과 달리 즉시 placeholder 및 스켈레톤과 같은 대체 페이지(fallback page) 가 제공된다.
- 데이터가 확인되면 최종 페이지가 캐시되고, SSG와 마찬가지로 캐시된 버전의 페이지를 받게 된다.
- 데이터가 업데이트되면 변경된 페이지만 다시 생성하고 캐시를 업데이트 한다. (백그라운드에서 이루어짐)
- 재검증시에도 먼저 캐시된 버전의 페이지를 받고, 업데이트된 버전을 받아 항상 빠른 응답을 받을 수 있다.
-
다시 말해, SSG처럼 정적 콘텐츠의 장점을 가지며 동시에 동적인 데이터 업데이트를 처리할 수 있다.
장점
- 빠른 사용자 경험 : SSR과 달리 페이지가 즉시 제공되어(fallback page) 사용자 경험이 좋아진다.
단점
- 페이지 디자인에 종속 : 웹 페이지 디자인 요소가 FCP를 지연시킬 수 있다.
- FCP(First Contentful Paint) : 사용자에게 의미 있는 콘텐츠가 표시되는 시점
- 새로운 데이터가 도착하기 전까지는 이전에 캐시된 버전의 페이지가 표시되며 이는 페이지의 크기와 복잡성, 서버의 성능에 따라 달라질 수 있다.