Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 72410
- JavaScript
- 프로그래머스
- 동적언어
- next.js
- 17681
- 약타입
- 스위프트
- SWIFT
- reactnavigation
- 함수형프로그래밍
- 비반환함수
- multiline
- DelayInput
- ReactNative
- 중첩함수
- ios
- beforePopState
- 옵셔널
- 리액트네이티브
- Server-Side-Rendering
- replacingOccurrences
- lineending
- textinput
- client-side-rendering
- 데이터타입함수
- switch구문
- 나를부르는숲
- 약타입언어
- reactnative android
Archives
- Today
- Total
으니의 개발로그
CSR(Client Side Rendering) vs SSR(Server Side Rendering) 본문
CSR(Client Side Rendering) vs SSR(Server Side Rendering)
CSR(Client Side Rendering)
CSR, 즉 Client Side Rendering은 뜻 그대로 클라이언트 측에서 렌더링을 처리한다는 것이다.
CSR 렌더링 순서
- 사용자가 웹사이트에 요청을 보낸다. (브라우저에 보고 싶은 사이트의 주소를 검색함)
- 서버(클라이언트 서버)에서 JavaScript 링크가 담겨있는 빈 HTML파일을 전송한다.
- 브라우저에서 HTML 파일을 다운로드 한다.
- 브라우저가 CSS 파일과 JavaScript 파일을 다운로드한다.
- 브라우저가 프레임워크(리액트) 또는 라이브러리를 실행한다.
- 브라우저가 웹사이트를 보여준다.
장점
- 초기 로딩 이후의 렌더링 속도는 빠르다.
- CSR의 경우 JavaScript 파일이 모두 다운로드 한 뒤에 사용자에게 화면을 보여주므로(6번 과정) 초기 로딩 속도는 느릴 수 있으나, 다운로드 하는 JavaScript 파일에 모든 화면의 정보가 담겨져있기 때문에 그 후 화면전환은 비교적 빠르게 진행될 수 있다.
- 사용자가 브라우저와 많은 상호작용을 필요로 하는 웹앱의 경우 적합하게 사용가능하다.
- JavaScript를 불러온 뒤에 화면이 그려지기 때문에 UX 측면에서 유리하다.
단점
- SEO가 어렵다.
- 초기에 빈 페이지의 HTML을 받아오기 때문에
- 초기 로딩에 많은 시간이 소요될 수 있음
SSR(Sever Side Rendering)
SSR은 Server Side Rendering으로 서버에서 렌더링을 처리한다는 것이다.
SSR의 렌더링 순서
- 사용자가 웹사이트에 요청을 보낸다. (브라우저에 보고 싶은 사이트의 주소를 검색함)
- 서버(클라이언트 서버)가 준비된 HTML 파일을 생성한다. (이 때, HTML 파일은 즉시 렌더링이 가능하다.)
- 브라우저는 인터랙티브 하지 않은 HTML을 렌더링한다. (이 때, JavaScript가 적용되기 전이기 때문에 사이트를 사용자가 조작할 수 없다.)
- 브라우저가 JavaScript 파일을 다운로드한다.
- 브라우저가 JavaScript 파일을 실행한다.
- 웹사이트가 인터랙티브한 화면을 보여준다.
장점
- 초기 로딩 속도가 빠르다.
- 더 나은 SEO(Search Engine Optimization, 검색엔진 최적화)
- 검색엔진은 JS 파일을 실행하지 못하기 때문에 CSR의 경우 빈 HTML 파일을 크롤링해가지만, SSR은 완성된 HTML을 크롤링해간다.
단점
- 잦은 서버 요청
- 페이지가 전환될 때마다 서버에서 HTML 파일을 다시 요청해야 한다.
- 사용자와의 상호 작용이 많을 경우 UX 측면에서 불리하다.
- JS 파일을 모두 다운로드 후 사용자의 액션이 적용되기 때문에 즉각적인 반응을 기대할 수 없다.
[참고자료]
https://www.blog.duomly.com/client-side-rendering-vs-server-side-rendering-vs-prerendering/