Next.js

SSR VS CSR 차이점

lheunoia 2024. 1. 21. 19:19

 

SSR vs CSR

 




안녕하세요 :)

오늘은 SSR(Server Side Rendering)과 CSR(Client Side Rendering)의 차이점에 대해 알아 보겠습니다. 🐹



 

🙌🏻 SSR (Server Side Rendering)

SSR

 

서버 사이드 렌더링(SSR)이란, UI 로직이 담긴 HTML 파일을 서버 측에서 렌더링하는 방식을 말합니다. 서버에서 렌더링이 완료된 HTML 파일을 전달받기 때문에 사용자는 곧바로 웹 사이트를 볼 수 있습니다. 그러나 사용자와의 인터렉션을 요구하는 자바스크립트 파일이 브라우저상에 다운로드되기 전까지 사용자는 어떠한 행위도 수행할 수 없어, TTV(Time To View)와 TTI(Time To Interaction) 사이의 공백 시간이 존재하게 됩니다. 

 

 

 

 

🙌🏻 CSR (Client Side Rendering)

CSR

 

 

 

클라이언트 사이드 렌더링(CSR)이란, 서버로부터 비어 있는 HTML 파일을 전달 받아 클라이언트 측에서 렌더링하고 자바스크립트 파일을 Hydration 하는 방식을 말합니다. HTML 파일을 렌더링하기까지 사용자가 화면을 볼 수 없다는 단점이 있지만 화면을 볼 수 있는 동시에 인터렉션을 수행할 수 있습니다.

 

더보기

💡 Hydration
     HTML 파일과 자바스크립트 코드를 연결하는 과정 혹은 각 DOM 요소에 이벤트 리스너를 연결하는 과정

 

 

 

이렇듯, SSR과 CSR 방식은 어느 곳에서 HTML 파일을 렌더링하는 지에 따라 나뉘게 됩니다. 또 그에 따라 발생하는 장단점이 존재하게 되고, 어떤 경우에 어떤 렌더링 방식을 적용하는 것이 더 효율적인지 알아 보겠습니다.

 

 

 

 

🌵 SSR 장단점

  • 장점
    • 서버로부터 pre-rendering된 HTML 파일을 전달받기 때문에 검색 엔진 최적화(SEO)에 용이
    • 초기 로딩 속도가 빠름
  • 단점
    • 사용자가 페이지를 볼 수 있는 시간과 인터렉션할 수 있는 시간 사이의 공백이 존재하여 사용자가 불편함 호소
    • 페이지 이동 시, 서버 측에서 HTML 파일을 다시 렌더링하기 때문에 초기 로딩 속도를 제외한 나머지 로딩 속도는 느림
    • CSR 방식보다 서버의 부하가 큼

 

더보기

💡 SEO (검색 엔진 최적화)
     웹 사이트를 검색 엔진에 잘 노출되도록 하는 작업
     HTML 문서의 head 태그와 meta 태그에 등록된 데이터를 통해 검색 엔진에 노출될 수 있다.

 

 

 

 

🌵 CSR 장단점

  • 장점
    • 페이지 이동 시, 필요한 데이터만 전달받아 렌더링하기 때문에 초기 로딩 시간을 제외한 나머지 로딩 시간이 빠름
    • 사용자는 페이지를 볼 수 있는 동시에 인터렉션이 가능
    • 서버는 비어 있는 HTML 파일만 전달하기 때문에 서버의 부하가 적음
  • 단점
    • 서버로부터 비어있는 HTML 파일을 전달받기 때문에 검색 엔진 최적화(SEO)에 취약
    • 초기에는 비어있는 HTML 파일에 자바스크립트 파일을 적용하여 페이지를 렌더링하기 때문에 초기 로딩 속도가 느림

 

 

 

🙂 SSR, CSR. 언제 사용하면 좋을까?

SSR

  • 페이지에 자주 바뀌는 데이터가 존재하는 경우
  • 랜딩 페이지나 블로그와 같이 검색 엔진에 노출되어야 하는 경우

 

 

CSR

  • 사용자와 높은 상호작용을 필요로 하는 경우
  • 프로필 페이지와 같이 검색 엔진에 노출될 필요가 없는 경우

 

 

 

반응형