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
- solidity
- http 모듈
- Private Blockchain
- 불안정 정렬
- 2티어 아키텍처
- caverjs
- Relational Database
- #유니티
- npm
- react
- CSS Specificity
- SQL
- ES6 모듈
- #1인게임개발
- 안정 정렬
- IP
- 3티어 아키텍처
- NoSQL
- skip ci
- Factory 함수
- 블록체인
- UTXO
- Hybrid Blockchain
- javascript
- CLI
- 텍스트 가운데 정렬
- short-circuiting
- 명시도
- Factory Functions
- CSS
Archives
- Today
- Total
짹뚜 스튜디오
[프론트엔드] CSR VS SSR 본문
CSR (Client Side Rendering)
CSR이란 렌더링이 클라이언트에서 일어나는 것을 뜻한다. 서버에 HTML과 JS 파일 요청을 보내면 서버가 파일들을 보내주고 클라이언트에는 파일들을 받아서 렌더링을 한다.
- 사용자의 행동에 따라 필요한 부분만 서버에 요청을 해서 렌더링 하기 때문에 빠른 인터렉션을 기대할 수 있다.
- 첫 페이지 로딩 시간이 길다. 서버에서 HTML 파일을 받지만 HTML 파일 내부에는 아무런 내용이 없다. React를 예로 들면, index.html 에는 <div id="root"></div>만 존재한다. 그래서 HTML 파일을 받고 JS 파일을 받은 후에 JS 파일을 실행하면서 렌더링이 된다. 그래서 필요한 파일을 모두 받은 후에 렌더링이 되기 때문에 초기 로딩 시간이 길다.
- 나머지 페이지를 로딩하는 시간은 빠르다. 왜냐하면 첫 페이지 로딩 시 모든 페이지를 받아왔기 때문이다.
- SEO (검색 엔진 최적화)가 좋지 않다. 웹 크롤러 봇이 웹 상에 존재하는 HTML 파일들을 분석해서 검색 엔진에 등록을 하게 되는데, HTML 파일에 정보가 없기 때문에 SEO가 좋지 않다. 구글에서는 이 문제를 해결하기 위해 JS 파일도 분석해서 검색 엔진에 등록을 하도록 구현을 했다.
SSR (Server Side Rendering)
SSR이란 렌더링이 서버에서 일어나는 것을 뜻한다. 서버에 요청이 들어오면 서버가 필요한 파일들을 모두 가져와서 HTML 파일을 만든다 (이렇게 만드는 과정을 렌더링이라고 한다). 만들어진 HTML 파일을 클라이언트에 보내주고 그다음 JS 파일을 보내준다.
- 서버에서 필요한 부분의 HTML 파일만 받아오기 때문에 첫 페이지 로딩 시간은 CSR보다 빠르다.
- 그러나 다른 페이지를 로딩할 때는 다시 서버로부터 요청을 받아야하기 때문에 나머지 페이지를 로딩하는 시간이 CSR보다 느리다.
- 모든 정보가 HTML 파일에 담겨져 있기 때문에 효율적인 SEO가 가능하다.
- HTML 파일을 먼저 읽어와서 클라이언트에 렌더링 하기 때문에 컨텐츠를 볼 수는 있지만 조작은 할 수 없다. JS까지 모두 받은 후에야 조작이 가능해진다.
- 서버 과부하가 걸리기 쉽다. 사용자가 페이지 요청을 할 때마다 서버에서 필요한 데이터를 가지고 와서 HTML 파일을 매번 만들기 때문에 사용자가 많은 웹 서비스일수록 서버 과부하가 걸리기 쉽다.
'개발 공부 > 프론트엔드' 카테고리의 다른 글
[React] useRef (0) | 2022.02.06 |
---|---|
[React] useEffect (0) | 2022.01.27 |
[React] State와 useState (0) | 2022.01.21 |
[React] Props (0) | 2022.01.16 |
[React] React Router (0) | 2022.01.11 |
Comments