❗️화면 깜빡임 없음
❗️화면 깜빡임 있음
클라이언트 측에서 렌더링 하는 방식
서버 측에서 렌더링 하는 방식
요청할 때 즉시 만드니까 데이터가 달라져서 미리 만들어두기 어려운 페이지에 적합
❗️CSR과 SSR은 Client와 Server 중 어느 쪽(side)에서 Rendering을 준비하냐에 따라 나눠지는 개념이다.
페이지 구성 방식 !== 렌더링 방식
SPA !== CSR
MPA !== SSR
페이지가 몇개인가? 또는 렌더링을 어디서 하느냐에 따라 달라질 수 있기 때문에 다른 개념이다.
단점 : 브라우저가 JS파일을 다운받고 동적으로 DOM을 생성하는 시간을 기다려야 하기 때문에 초기 로딩 속도가 느림. 하지만 이 후 구동 속도 빠름.
장점 : 클라이언트 측에서 연산 라우팅 등을 모두 직접 처리하기 때문에 반응속도가 빠르고 UX도 우수하다.
CSR과 SSR의 가장 큰 차이점은 Client와 Server 중 어느 쪽(Side)에서 rendering을 준비하느냐에 달려있다.
CSR | SSR | |
---|---|---|
장점 |
● 화면 깜빡임이 없음 ● 초기 코딩 이 후 구동 속도가 빠름 ● TTV와 TTI사이 간극이 없음 ● 서버 부하 분산 |
● 초기 구동 속도가 빠름 ● SEO에 유리함 |
단점 |
● 초기 로딩 속도가 느림 ● SEO에 불리함 |
● 화면 깜빡임이 있음 ● TTV와 TTI사이 간극이 있음 ● 서버 부하가 있음 |
https://hanamon.kr/spa-mpa-ssr-csr-%EC%9E%A5%EB%8B%A8%EC%A0%90-%EB%9C%BB%EC%A0%95%EB%A6%AC/
Next.js는 리액트나 SSR이나 SSG를 사용할 수 있게 해주는 프레임워크
GatsbyJS는 SSG에 최적화 된 리액트 기반 정적 페이지 생성 프레임워크로 SSG에 최적화 되어 있긴 하지만 CSR, SSR, 레이지 로딩 등도 지원하고 무엇보다 다양한 플러그인들을 제공하는 것이 장점이다. 빌드 시점에 스태틱 HTML들을 만들어 주는 것이기 때문에 페이지가 적고, 작은 서비스라면 적합하다.
이러한 프레임워크들이 CSR에 SSR이나 SSG 도입을 훨씬 편하게 만들어 주는 것은 사실이지만 프레임워크를 사용하더라도 일반 SPA. 즉 CSR개발에 코드 복잡도는 올라간다.