[출처]
Rendering on the Web
애플리케이션에서 로직과 렌더링을 어디에 구현해야 하는가? 서버 사이드 렌더링을 사용해야 하는가? Rehydration 무엇인가?
개발자로서 우리는 종종 애플리케이션의 전체 아키텍처에 영향을 미치는 결정에 직면한다. 웹 개발자가 내려야하는 핵심 결정 중 하나는 애플리케이션에서 로직 및 렌더링을 구현할 위치이다. 웹 사이트를 구축하는 방법은 여러가지이기 때문에 어려울 수 있다.
우리는 개발자가 전체 Rehydration 접근 방식보다 서버 측 렌더링 또는 정적 렌더링을 고려하도록 권장한다.
이 결정을 내릴 때 선택하는 아키텍처를 더 잘 이해하려면 각 접근 방식에 대한 확실한 이해와 접근 방식에 대해 말할 때 사용할 일관된 용어가 필요하다. 이러한 접근 방식의 차이점은 성능이라는 렌즈를 통해 웹 렌더링의 장단점을 설명하는데 도움을 준다.
용어
Rendering
- Server Side Rendering(SSR): 클라이언트 측 또는 범용 앱을 서버에서 HTML로 렌더링한다.
- Client Side Rendering(CSR): JavaScript를 통해 브라우저에서 앱을 렌더링하여 DOM을 수정한다.
- Rehydration(재수화): 클라이언트에서 JavaScript 뷰를 '부팅'하여 서버에서 렌더링된 HTML의 DOM 트리와 데이터를 재사용한다.
→ 클라이언트에서 페이지를 받아와도 이미 서버에서 렌더링된 HTML의 DOM 트리와 데이터가 존재하는 경우 이미 존재하는 DOM 트리와 데이터를 이용하여 페이지를 더 빨리 렌더링 하는 상호작용
- Prerendering: 빌드 시간에 클라이언트 측 애플리케이션을 실행하여 그 초기 상태를 정적 HTML로 캡쳐하는 것
→ 초기 상태를 정적 HTML로 만드는 프로세스를 의미하며, 특히 SEO에 유용하다. 첫 페이지 로딩 속도를 빠르게 해주는 장점이 있다.
Performance