CSR과 SSR의 장단점

Category
devpeople
Types
인사이트
Tags
서비스 개발
Description
클라이언트 사이드 렌더링과 서버 사이드 렌더링의 장단점 비교
Created
2022/07/04
creater
esther
2 more properties

# 브라우저 렌더링이란?

먼저 브라우저 렌더링이란 브라우저가 서버로부터 요청해 받은 내용을 브라우저 화면(view)에 표시해주는 작업을 말합니다. 즉, 브라우저가 서버로부터 HTML, CSS, JavaScript 문서를 전달받아 브라우저 엔진이 각 문서를 해석해 브라우저 화면을 그려주는 것이죠. 예를 들어, 크롬 브라우저에 접속해 주소창에 www.devepeople.kr 을 입력한다면 브라우저는 데브피플 서버로부터 데브피플 웹사이트에 대한 정보를 받아 브라우저 화면에 데브피플 홈페이지를 그려주게 되는 것입니다. 그리고 이러한 브라우저 렌더링은 크게 ‘클라이언트 사이드 렌더링’과 ‘서버 사이드 렌더링’ 방식으로 나누어집니다.

# 클라이언트 사이드 렌더링(Client Side Rendering)이란?

클라이언트 사이드 렌더링은 클라이언트인 브라우저가 렌더링을 처리하는 방식입니다. 즉, 서버에서 받은 데이터를 통해 클라이언트인 브라우저가 화면(View)을 그리는 주체가 되는 것이죠.
장점
네이티브 앱과 비슷한 빠른 인터렉션을 구현할 수 있습니다.
View 렌더링을 브라우저에게 담당시킴으로서 서버 트래픽을 감소시키고, 사용자에게 더 빠른 인터렉션을 제공해 줍니다.
새로고침이 발생하지 않아 사용자가 네이티브 앱과 비슷한 경험을 할 수 있습니다.
단점
첫 페이지 로딩 속도가 서버 사이드 렌더링에 비해 다소 느립니다.
서버에 첫 요청 시 전체 페이지에 대한 모든 문서 파일을 받다 보니 서버 사이드 렌더링보다 로딩 속도가 느립니다.
검색엔진최적화(SEO)에 대한 추가 보완 작업이 필요합니다.
포털사이트 검색엔진 크롤러가 웹사이트에 대한 데이터를 제대로 수집하지 못하는 경우가 발생할 수 있습니다. 구글의 검색엔진의 경우 자바스크립트 엔진이 내장되어 있어 크롤링이 되지만, 네이버, 다음의 경우 검색엔진이 제대로 크롤링하지 못하기 때문에 별도의 보완작업이 필요합니다. (예, sitemap 문서 작성)

# 서버 사이드 렌더링(Server Side Rendering)이란?

서버 사이드 렌더링은 클라이언트(브라우저)가 서버에 매번 데이터를 요청하여 서버에서 처리하는 방식입니다. 클라이언트에서 요청이 들어올 때마다 매번 서버에서 새로운 화면(View)을 만들어 제공하는 것이죠. 즉, 서버가 화면(View)을 그리는 주체가 됩니다.
장점
첫 페이지 로딩 속도가 클라이언트 사이드 렌더링에 비해 더 빠릅니다.
해당 첫 페이지에 해당하는 문서만 브라우저에게 전달하여 브라우저가 렌더링하기 때문에 초기 로딩 속도가 클라이언트 사이드 렌더링에 비해 더 빠릅니다.
검색엔진최적화(SEO)가 가능합니다.
단점
초기 로딩 이후 페이지 이동 시 속도가 다소 느립니다.
페이지 이동 시마다 클라이언트가 서버에게 필요한 데이터를 요청하고 서버가 응답해주는 방식이다 보니 속도가 다소 느립니다.