CSR & SSR

이소라·2022년 10월 14일
0

Client-Side Rendering & Server-Side Rendering

1. Server Side Rendering (SSR)

SSR

  • 전통적인 웹 애플리케이션 렌더링 방식
  • 사용자가 웹페이지에 접근할 때, 서버에 페이지에 대한 요청을 함
  • 서버에서 HTML, View와 같은 자원들을 어떻게 보여줄지 해석하고 렌더링하여 사용자에게 반환함
  • 웹 서버에 요청할 때마다 브라우저에서 새로고침이 일어나고, 서버에 새로운 페이지에 대한 요청을 하는 방식

SSR의 장단점

  • SSR의 장점
    • 검색엔진최적화(SEO) 가능
      • SEO : 웹페이지 검색엔진이 자료를 수집하고 순위를 매기는 방식에 받게 페이지를 구성하여 검색 결과의 상위에 나올 수 있도록 하는 작업
    • 초기 로딩 속도 빠름
      • 처음 렌더링된 HTML을 클라이언트에게 전달해주기 때문에 초기 로딩 속도를 줄일 수 있음
  • SSR의 단점
    • 프로젝트 구조가 복잡해짐
      • Redux, React Router 등 여러 라이브러리와 함께 연동하여 서버에서 데이터를 가져와서 렌더링하는 상황이 발생하면, 프로젝트가 복잡해질 수 있음
    • 매번 새로고침이 발생함
      • 서버에 요청할 때마다 새로고침이 발생하므로, 서버와의 잦은 응답으로 인해 서버에 부담을 주게 됨



2. Client Side Rendering (CSR)

SPA : Single Page Application

  • 컴퓨터에 비해 성능 낮은 모바일을 최적화시키기 위해 등장한 개념
  • 최초 한 번 전체 페이지를 로딩한 이후 데이터만 변경하여 사용하는 단일 페이지로 구성된 웹 애플리케이션
  • 화면 구성에 필요한 모든 HTML을 클라이언트가 갖고 있고, 서버에 필요한 데이터를 요청하여 JSON 형식으로 받기 때문에 기존 애플리케이션에 비해 화면을 구성하는 속도가 빠름
  • 서버에서는 JSON 파일을 보내는 역할만 하고, 클리이언트에서 JavaScript가 HTML을 그리는 역할을 함 => CSR

CSR

  • 클라이언트에서 최초 한번 서버에 전체 페이지를 로딩하여 보여줌
  • 그 이후 사용자의 요청이 올 때 마다, 서버에 자원을 요청하고 클라이언트가 해석해서 렌더링함
  • CSR 과정
    1. 처음 웹 서버에 요청할 때 데이터가 없는 문서(HTML, static 파일)를 반환함
    2. HTML 및 static 파일이 로드됨
      • 데이터가 있다면, 데이터도 서버에 요청하여 화면에 나타냄
    3. 사용자의 상호작용에 따라 JavaScript를 통해 동적으로 렌더링함
    4. 필요에 따라 서버에 데이터를 요청하여 받아와서 렌더링함

CSR의 장단점

  • CSR의 장점
    • 트래픽 감소와 빠른 상호작용
      • CSR은 사용자 행동에 따라 필요하고 변경된 데이터만 받아올 수 있기 때문에 빠른 상요작용이 가능하고 서버의 부담이 덜함
  • CSR의 단점
    • 초기 구동 속도가 느림
      • CSR은 서버에서 View를 렌더링하는 것이 아니라 HTML, JavaScript 파일, 각 종 데이터를 로딩한 후 브라우저에서 렌더링하기 때문에 초기 구동속도가 느림
    • 검색엔진 최적화(SEO)가 어려움
      • CSR 방식으로 이루어진 웹 페이지에서 View를 생성하기 위해서는 반드시 JavaScript를 실행시켜야 함
      • 대부분 웹 크롤러 봇들은 JavaScript 파일을 실행시키지 못하기 때문에 HTML에서만 내용을 수집하여 빈 페이지로 인식하게 됨
      • + 최근에 Crome 크롤러 봇은 JavaScript 파일을 실행시킬 수 있다고 함
    • 보안 문제가 있음
      • SSR은 사용자 정보를 서버 측에서 세션으로 관리하지만, CSR은 쿠기 말고 사용자 정보를 저장할 공간이 마땅치 않음

0개의 댓글