✅ SSR
서버에서 데이터를 가져와서 데이터를 페이지로 props를 통해 전달해 준다.
✔️ 사용되는 함수 : getSeverSideProps
:
✔️ 단점 :
Pages 라우팅 이동시 (DOM을 새로그려올때) 서버에 과부하가 올 수 있다. (감사합니다 빽준님👍)
✅ CSR
클라이언트가 데이터를 가져와서 그린다.
기존 React에서 사용하던 방식이기 때문에 그대로 사용가능
✅ SSG
정적인 사이트를 데이터를 가져와서 그린다.
build
를 해야한다.✔️ 사용되는 함수 : getStaticProps
+getStaticPaths
getStaticProps : 빌드 시 데이터를 불러와 static 페이지를 생성함
getStaticPaths : pages/**/[id].jsx
형태의 동적 라우팅 페이지 중, 빌드 시에 static하게 생성할 페이지의 path를 미리 지정
✔️ 사용하는 이유 :
: 이미 빌드되어있는 데이터를 보여주기 때문에 서버에서 데이터를 불러왔지만 과부하가 걸릴 일이 없다.
블로그와 같은 정적인 사이트는 SSG를 사용하는것이 훨씬 서버의 과부하를 줄이고 효용성이 높다.
✅ ISR
증분정적사이트를 재생성한다(특정주기로 데이터를 가져와서 다시 그려둔다)
✔️ 사용되는 함수 : getStaticProps(+revalidate)
SSG와 같지만 revalidate에 지정한 시간에따라 해당 시간마다 다시 데이터를 가져온다.
안녕하세여 서율님
getServerSideProps에서 단점을 새로고침시에 서버로부터 데이터를 가져오기때문에 라는 표현보다는
pages 라우팅 이동시에와 dom을 새로그려올때라는 표현이 더 맞지않을까 싶네요
Nextjs가 서버사이드 프레임워크이기도하지만 ssg ssr csr 모두 혼용해서 사용하고있는 프레임워크라서요
Nextjs 는 url에 담겨잇는 리소스에대한 요청에대한 응답으로 페이지 컴포넌트를 넘겨주는데요
최초로딩시에는 해당컴포넌트와 글로벌레이아웃 컴포넌트를 주지만,
클라이언트 사이드 라우팅(Link | Router.push)에서는 페이지 컴포넌트만 갈아치워주기 때문입니당
상기 액션이 발생시(런타임)에 getServerSideProps가 실행되기때문에 표현이 조금더 추가되었으면하네여 ㅎㅎ