CSR (Client Side Rendering)
웹 페이지의 렌더링이 클라이언트 (브라우저)측에서 일어납니다.
서버에서 인덱스라는 HTML 파일을 클라이언트에 보내주는데 이 인덱스 파일은 대부분 비어있어 사용자에게 아무것도 보여지지 않습니다.
장점: 서버와 클라이언트 간의 데이터 트래픽이 감소하고 렌더링이 한번만 있기 때문에 페이지 이동이 빠릅니다.
단점: 사용자가 첫 화면을 보기까지 시간이 오래 걸릴 수 있다는 점과 SEO(Search Engine Optimization)가 좋지 않다는 점입니다.
SSR (Server Side Rendering)
서버에서 필요한 데이터를 모두 가져와서 HTML 파일을 동적으로 제어할 수 있는 소스코드와 함께 클라이언트에게 보내고 클라이언트 상에서는 잘 만들어진 HTML 문서를 받아와서 바로 사용자에게 보여줄 수 있게 됩니다.
장점: 첫번째 페이지(초기) 로딩이 빨라집니다. 그리고 모든 컨텐츠가 HTML에 담겨져 있기 때문에 더 효율적인 SEO가 가능합니다.
단점: 각 페이지별로 매번 로딩시간 및 새로고침 현상이 발생한다는 점은 UX및 UI에 심각한 영향을 줄 수 있습니다. 그리고 서버에 과부하가 걸리기 쉽습니다. 가장 치명적인 단점은, 사용자가 빠르게 웹사이트를 확인할 수는 있지만, 동적으로 자바스크립트를 처리하는 자바스크립트를 아직 다운받지 못해서 버튼과 같은 요소를 클릭 했을 때 반응이 없을 수 있습니다.
SSG (Static Site Generation)
- React + Gatsby
- React + NextJS - NextJs는 강력한 서버 사이드 렌더링을 지원하는 라이브러리였는데, 이제는 Static Site Generation 지원
Reference
반응형
'기술면접' 카테고리의 다른 글
브라우저 렌더링 (작동) 원리 (0) | 2021.12.08 |
---|---|
lazy loading (0) | 2021.12.06 |
script, script async 와 defer (0) | 2021.12.03 |
REST한 API에 대해서 자세히 설명해주세요. (0) | 2021.11.19 |
CORS란 무엇이고 목적은 어떻게 되는지 설명해주세요. 그리고 NodeJS 기반의 웹 서버에서 CORS를 어떻게 설정하는지 설명해주세요. (0) | 2021.11.19 |