1 minute read

CSR

클라이언트 사이드(브라우저)가 App을 렌더링 하는 것
  • Rendering 이란

    요청받은 내용을 화면에 표시하는 것

클라이언트 사이드(브라우저)가 App 을 렌더링 하는 것

SPA 또한 CSR

  • 동작 과정 : HTML 다운로드 -> JS 다운로드 -> JS 실행 -> 서버로부터 데이터 받기 -> Contents 풀 로드

  • 장점

    사용자의 행동에 따라 필요한 부분만 다시 데이터를 받기 때문에 SSR 보다 조금 더 빠른 인터렉션 가능

    page 전체를 요청하지 않고 페이지에 필요한 부분만 렌더링하기 때문에 모바일 환경에서도 빠른 속도로 렌더링 가능

    lazy loading 지원 (lazy loading 이란 페이지 로딩 시 중요하지 않은 리소스의 로딩을 늦추는 기술)

    SSR 이 따로 필요하지 않기 때문에 일관성 있는 코드 작성 가능

  • 단점

    검색 엔진에 노출되지 않음 (HTML 만 읽어들이고 JS는 작동하지 않기 때문)

    페이지를 읽고 JS 가 렌더링을 마쳐야 콘텐츠가 완전히 보여지기 때문에 JS 에 영향을 받음

  • 해결책

    코드 스플리팅

    SSR 과 혼합

  • SPA 프레임워크, 라이브러리 의 등장 전

    클라이언트 단에서는 새로운 페이지를 요청하고 서버에서는 템플릿을 이용하여 렌더링하고 완성된 페이지 형태로 응답하는 SSR(MPA multiple page application) 방식이 많았음

    SPA 는 구현은 가능했지만 표준화되지 않았고 생태계 또한 미비했기 때문에 사용량이 적었음

    • 문제점

      페이지 이동 시 화면을 로드해야 하기 떄문에 깜빡임

      페이지 이동시 마다 서버에 페이지를 요청하므로 불필요한 요청이 많음

      서버가 렌더링까지 하므로 부하가 걸림

      모바일 앱 개발시 추가적인 작업 필요

  • SPA 프레임워크, 라이브러리 의 등장

    SPA 프레임워크, 라이브러리의 등장으로 CSR 이 웹 렌더링의 패러다임이 됨

    UX 향상, 서버 부하 덜어내기 등을 가능하게 해줌

    하지만 SPA 는 JS 로 컴포넌트들을 로드하기 때문에 초기 렌더링이 느림

    다시끔 SSR 이 등장하며 처음의 렌더링을 SSR 로 진행하고 JS 를 다운 받는 형태인 CSR, SSR 혼합 방식을 택해서 UX 개선, 빈 화면 시간 감소 등을 진행함

다음 글(SSR)에서 이어짐

Categories:

Updated: