| CSR 과 SSR 에 대한 기본 개념에 대해 알아보겠습니다.
| CSR과 SSR에 대해서 알아보기에 앞서서는 SPA와 MPA 의 개념부터 알아야 합니다.
하나의 페이지로 구성된 웹 어플리케이션
Multi Page Application의 약자로 탭을 이동할 때마다, 서버로부터 새로운 html을 새로 받아와서 페이지를 새로 렌더링 하는 어플리케이션
AJAX 의 등장 이후 부터는 SPA가 대세가 되었습니다.
SPA 에서는 대부분 렌더링 방식으로 CSR을 사용합니다.
MPA 에서는 렌더링 방식으로 SSR을 사용합니다.
위에서 대부분 이라고 한 이유는 SPA와 CSR, MPA 와 SSR 은 다른 개념이기 때문입니다.
왜 그럴까요? 계속 확인해보겠습니다.
Static Site Generation (static rendering)
서버에서 정적 HTML을 보내준다는 측면에서는 SSR과 비슷하지만,
언제 만들어 주느냐의 차이가 있습니다.
SSR
요청 시 서버에서 즉시 만들어서 제공합니다.
미리 만들어두기 어려운 페이지에 적합합니다.
SSG
페이지를 전부 먼저 만들어둔 뒤 요청 시에 해당 페이지를 응답합니다.
바뀔 일이 없기 때문에 캐싱해두면 좋습니다.
JS 전체를 다운로드 받아야 하기 때문에 초기 로딩 속도가 느립니다
이후 구동 속도는 빠릅니다.
서버는 빈 페이지만 주면 되기 때문에 서버 부하가 적습니다.
반응속도가 빠르고 화면 깜빡임이 없어 UX가 우수하다는 장점이 있습니다.
하지만 빈 페이지만을 가지고 있기 때문에, SEO에 불리하다는 큰 단점이 있습니다.
라이브러리나 웹팩 플러그인을 이용해서 웹 페이지에 따른 HTML을 미리 생성해둔 뒤 서버에서 요청하는 자가 크롤러일 경우 제공하는 방법이 있습니다.
초기 렌더링은 SSR을 사용하고, 그 이후에는 CSR을 사용할 수도 있습니다.
어떤 것이 좋다라고 할 수 없고, 서비스의 성격에 따라 방법을 맞춰 써야 합니다.
사용자와의 상호작용이 많고, 고객의 개인정보 데이터 위주의 서비스라면, SEO는 중요하지 않기 때문에 CSR이 더 좋은 방식이라고 할 수 있습니다.
회사 홈페이지가 상위에 노출되어야 하고, 업데이트가 필요할 시 SSR
업데이트 없이 누구에게나 같은 내용을 보여준다면, SSG 를 이용하는 것이 좋습니다.
빠른 인터랙션과 화면 깜빡임이 없고, 검색엔진 최적화도 해야한다면, CSR + SSR을 이용하는 것이 좋습니다.
참고 : https://www.youtube.com/watch?v=YuqB8D6eCKE&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&index=200
좋은 글 감사합니다. 자주 올게요 :)