SSR과 CSR

구현하다·2022년 10월 26일
0

CS

목록 보기
3/5
post-thumbnail

SSR (Server Side Rendering)

: 유저의 새로운 요청이 있을 때마다 server로부터 렌더링 준비가 완료된 정적 리소스를 다운로드 받아 그리는 방식.
렌더링 준비를 모두 마친 html과 js를 다운받아 client에서는 js와 html을 연결시킨다.

장점

  • 첫 화면을 보는 시간이 짧다.
    (TTV : TimeToView 가 짧다)
  • SEO가 효율적이다.

단점

  • 매번 server로부터 새로 받아와서 렌더링하기 때문에 서버과부화 문제가 있다.
  • 동적인 부분을 바로 처리하기 어렵다.
    (TTI : TimeTo Interact 가 길다.)

SSR을 사용하는 것이 좋은 경우

  • 네트워크가 느린 경우 / 최초 로딩이 빨라야 하는 경우.
    (CSR보다 화면을 불러오는 시간이 짧기 때문에 유저의 기다리는 시간 또한 비교적 짧다)
  • SEO가 필요한 경우.
  • 사용자와의 상호작용이 많이 필요하지 않은 경우.
  • 항상 최신의 상태를 유지해야하는 경우.
    (분석 차트, 관리자 페이지, 예약 시스템 등)

CSR (Client Side Rendering)

: Server로부터 정적 리소스를 한꺼번에 모두 다운로드 받아, Client에서 직접 렌더링 준비 후 html을 그리는 방식.
html을 먼저 받고 연결된 js링크를 다운 받아 client에서 동적 dom 생성

장점

  • url이 바뀌더라도 html을 다시 내려받지 않기 때문에 화면 깜빡임(리렌더링)없이 (빠르게)볼 수 있다.
  • 서버 과부화 문제가 없다.

단점

  • 사용자가 첫 화면을 보는 시간이 늦다.
    (TTV : TimeToView 가 길다)
  • SEO 대응이 힘들다.

CSR을 사용하는 것이 좋은 경우

  • 네트워크가 빠른 경우 / 서버의 성능이 좋지 않은 경우
  • 검색 엔진에 노출될 필요가 없는 경우.(SEO가 필요 없는 경우)
  • 유저와의 상호작용이 많은 사이트의 경우.
    (TTI : TimeTo Interact 가 짧다.)
  • 사용자에게 보여줘야 할 데이터의 양이 많은 경우.

REACT의 경우 CSR 방식으로 동작하는데, 라이브러리(NextJS, Gatsby)를 사용하거나 Prerender io를 사용함으로써 SEO 문제 개선 및 초기 로딩 속도 보완이 가능하다.

이러한 방식으로 만든 페이지를 SSG(Statice Site Generation)이라고 한다. SSG의 경우 회사 소개 페이지와 같이 모든 유저에게 항상 동일한 화면을 보이는 경우 사용하기 적합하다.
(ex 제품목록, 도움말, 블로그 등)

profile
Frontend Developer 😊

0개의 댓글