본문 바로가기

next.js

SSG의 부족한 점을 보완한 ISR

계속해서 SSG, SSR, CSR에 대해서 복습 중에 간단하게 정리를 하고 싶어서 글을 쓰게 되었다.

next.js는 크게 3가지의 렌더링 방식을 사용할 수 있다.

CSR : useEffect, SWR과 같은 상태관리 툴을 사용하여 렌더링 책임을 사용자에게 전가하는 것.

SSR : 사용자가 요청 할때마다 서버로부터 완전한 HTML을 받아 새로운 페이지를 생성해내는 방식.

SSG : 렌더링이 SSR과 비슷하지만 build시간에 미리 HTML을 생성하여 사용자에게 만들어진 화면을 제공.

 

** 위와 같은 렌더링 방식 속에서 next.js 성능상의 이점은 챙기면서도 업데이트된 내용을 제공할 수 있는 방식 = ISR

ISR:incremental static regerernation

 

SSG는 요청마다 build 타임에 이미 만들어진 HTML을 사용한다.

=> 덕분에 빠른 사용자 경험을 할 수 있지만, 똑같은 페이지를 봐야하므로 부정확한 정보가 사용자에게 전달될 수 있다.

그래서 사용하는 것이 revalidate을 이용한 ISR방식이다.

 

[ISR방식]

정적생성으로 만들어 놓은 사이트들도 필요하다면 업데이트가 가능하다는 이야기이다.

revalidation을 통해서 정해놓은 시간이 지나면 업데이트된 내용을 사용자가 볼 수 있게 할 수 있다.

 **production환경에서 확인이 가능하다는 점.

 

그러나 revalidation도 좋은 방법이지만 업데이트가 있어도 무조건 일정시간이 지나야지만 그 내용을 확인할 수 있으므로 그 방식을 보완해줄 Ondemand revalidation이 있다.

이 방식은 필요할때만 revalidation을 진행하여 효율적으로 사용이 가능하다.

데이터베이스에 업데이트가 있으면 api로 revalidation이 필요함을 알려 업데이트할 페이지 컴포넌트들을 새로 업데이트 할 수 있다.

 

참고 블로그)

https://velog.io/@sj_dev_js/Next.js-%EC%97%90-%EB%8C%80%ED%95%9C-%EA%B1%B0%EC%9D%98-%EB%AA%A8%EB%93%A0-%EA%B2%83

https://velog.io/@seungchan__y/NextJS%EC%99%80-ISR

'next.js' 카테고리의 다른 글

SEO 향상시키기  (0) 2023.05.15
회원기능  (0) 2023.05.07
서버로 데이터 전송  (0) 2023.05.04
next.js server  (0) 2023.05.01
[next.js] getStaticPaths  (0) 2023.04.07