티스토리 뷰
공통점
둘 다, 사이트 URL에 대응하는 HTML을 생성하고 SEO를 향상시킨다.
Static Rendering
차이점은 static rendering은 빌드 타임에 일어나고, server rendering은 유저가 요구할 때마다 일어난다는 것이다.
미리 빌드 타임에 각 URL에 대한 모든 HTML 파일들을 다 만들어 놓고, s3나 웹서버에 push 해놓고 유저가 요청할 때 미리 만들어둔 것을 전송한다. 예를 들어 s3 cloudfront를 사용하면 요청이 오면 cloudfront를 사용해 캐시된 버전이 있는지 확인하고 없으면 s3 요청을 한다.
장점
- 모든 요청 가능한 리퀘스트에 대응하는 응답을 다 만들어둔다. 그렇기 때문에 당연히 응답 속도가 매우 빠르다.
단점
- 요청 가능한 리퀘스트를 미리 예측할 수 없다면, 미리 만들어둘 수 없다.
- 요청할 때마다 응답이 바뀌는 경우
- search engine
Server Side Rendering
요청할 때마다 그때그때 만들어준다. react에서는 express나 nextjs를 실행하는 서버를 설정해서 가능하다.
장점
- 당연히 스태틱 렌더링보다 느리지만, 일반적으로 그렇게 크게 느리지 않음.
- 어떠한 요청에도 동적인 응답 가능.
- 인증되지 않는 유저에게는 선택적으로 컨텐츠를 숨길 수 있음.
서버렌더링은 SEO 목적으로 각 페이지에 specific한 HTML이 필요한 경우에 쓰면 된다. 그러나 SEO랑 무관한 앱을 만들고 있다면, 하나의 HTML만이 필요할 수도 있다.
Ref
https://www.toptal.com/front-end/client-side-vs-server-side-pre-rendering
https://frontarm.com/james-k-nelson/static-vs-server-rendering/
'공부일지(TIL) > Web' 카테고리의 다른 글
[SEO] Canonical tag (0) | 2022.08.09 |
---|---|
자바스크립트로 파일 다운로드하기 (0) | 2022.03.04 |
package.json의 resolutions (0) | 2021.10.14 |
Yarn workspaces (0) | 2021.07.28 |
스크립트 로딩 (async, defer) (0) | 2021.07.20 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 포인터 변수
- 인스턴스
- GIT
- til
- youtube data api
- JavaScript
- SQL
- linkedlist
- useEffect
- CSS
- rxjs
- getter
- 제네릭스
- jQuery
- 자바
- Java
- Conflict
- Session
- 깃
- oracle
- 개발 공부
- Redux
- package.json
- 알고리즘
- Data Structure
- react
- Prefix Sums
- this
- 리덕스
- c언어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함