728x90

SSR과 CSR?

SSR(Server Side Rendering)

서버측에서 렌더링 준비를 마친 채로 클라이언트에게 전달하는 방식

클라이언트가 서버에 페이지 요청 
> 서버는 렌더링 가능한 HTML 파일을 생성 
> 클라이언트는 서버로부터 렌더링 준비된 HTML 파일을 받게 되고, 즉시 렌더링 
> 클라이언트가 Javascript를 다운로드 받음(다운받는 사이에 유저는 페이지를 볼 수는 있지만 조작은 불가능)  
> 브라우저가 Javascript 실행 
> 사용자가 페이지 조작 가능

⚠ 그림에서 TTV(Time To View)는 화면까지의 도달 시간, TTI(Time To Interactive)는 반응을 하기까지의 시간이다.

CSR(Client Side Rendering)

클라이언트측에서 페이지를 렌더링 하는 방식

클라이언트가 서버에 페이지 요청 
> CDN이 HTML파일과 Javascript로 접근할 수 있는 링크를 클라이언트로 보낸다 
> 클라이언트는 HTML과 Javascript를 다운로드 받는다(SSR과 달리 유저는 페이지를 볼 수 없음) 
> 다운로드가 완료되면 Javascript가 실행되고, API가 호출된다 
> 서버가 API에 응답한다 
> 사용자에게 페이지가 보이게 되며 조작도 함께 가능한 상태로 바뀐다.

 

SSR과 CSR의 차이

1. 첫 페이지의 로딩 시간

- SSR은 서버에서 렌더링 준비를 마친 HTML파일을 먼저 보내주기 때문에 CSR보다 더 빠르게 첫 페이지를 볼 수 있다.

 

2. 나머지 페이지의 로딩 시간

- 첫 페이지는 SSR이 더 빠르지만, 그 후 나머지 페이지는 CSR이 더 빠르다. SSR은 페이지를 이동할 때 한 페이지를 다시 불러오지만, CSR은 그때그때마다 필요한 부분만 불러오기 때문이다.

 

3. SEO

-SSR은 CSR에 비해 SEO에 더 유리하다. 

SEO?
검색 엔진 최적화로, 웹 사이트가 검색 결과에 더 잘 보이도록 최적화하는 과정이다. 웹 페이지 검색엔진이 자료를 수집하고 순위를 매기는 방식에 맞게 웹 페이지를 구성해 검색 결과의 상위에 나올 수 있게 한다. 자동화된 로봇인 '크롤러'가 웹 페이지를 읽는다.

CSR은 자바스크립트를 동작시켜 동적으로 컨텐츠가 생성되기 때문에 크롤러가 읽기 어렵다. 하지만, SSR은 서버에서 렌더링 준비를 모두 마친 HTML 파일을 넘겨주기 때문에 SEO에 더 유리하다. 

 

SSR과 CSR의 구현방법

SSR: JSP, PHP 등 서버 사이드 스크립트 언어 기반의 템플릿 엔진을 이용해 동적인 웹을 만드는 방식에서 사용

CSR: React.js, Vue.js, Angular, Backbone.js 등과 같은 Single Page Application(SPA)에서 사용

 

그래서 SSR+CSR? 🧐 

SEO에 유리하고 첫 페이지 로딩이 빠른 SSR과 나머지 페이지 로딩 시간이 빠른 CSR의 장점을 결합한 SSR+CSR 프레임워크가 등장했다. Next.js(React로 구현), Nuxt.js(Vue.js로 구현) 등이 있으며, 이와같은 프레임워크들은 첫 렌더링은 SSR로 구현하고, 그 다음부터는 CSR로 구현한다.

 


출처:

https://2dubbing.tistory.com/86 [비실이의 개발 성장기:티스토리]

https://proglish.tistory.com/216 [Blog 프로그래밍]

https://wonkooklee.github.io/thumbnail_maker/ [썸네일]

728x90

'Computer Science > Web programming' 카테고리의 다른 글

[Web] PUT vs PATCH  (0) 2022.12.05
Spring 버전별 특징  (2) 2022.08.19
[CS] MSA 구조 정리  (0) 2022.08.04
[Web] TDD 방법론  (1) 2022.05.24
[Web] REST vs RESTful vs REST API(RESTful API)  (2) 2021.12.31
복사했습니다!