🌈 학습을 위해
Must-Know-About-Frontend
에서 가져온 내용을 수정, 추가하여 작성한 글입니다. 기존 내용과 대부분 유사하며 Summary 부분은 추가하였습니다.
CSR | SSR | |
---|---|---|
카테고리 | 렌더링 방식 | 렌더링 방식 |
사용 주체 | SPA | MPA |
설명 | 브라우저가 서버에 HTML과 JS 파일을 요청한 후 로드되면 사용자의 상호작용에 따라 JS를 이용해서 동적으로 렌더링하는 방식 | 브라우저가 페이지를 요청할 때마다 해당 페이지의 렌더링 준비를 마친 HTML을 받아와 일단 화면에 보여준 후 관련 JS를 HTML과 매칭(hydration)시키는 방식 |
장점 | 첫 로딩 이후 사용자 경험 좋음, 서버 부담 ↓ | 첫 로딩 빠름, SEO 유리 |
단점 | 첫 로딩 느림, SEO 불리 | 사용자 경험 저하(새로고침, TTV와 TTI의 차이), 서버 부담 ↑ |
하나의 HTML 파일을 기반으로 자바스크립트를 이용해 동적으로 화면의 컨텐츠를 바꾸는 방식의 웹 어플리케이션이다.
사용자가 페이지를 요청할 때마다, 웹 서버가 요청한 UI와 필요한 데이터를 HTML로 파싱해서 보여주는 방식의 웹 어플리케이션이다.
전통적인 방식을 이용한다면, SPA가 사용하는 렌더링 방식은 CSR이고, MPA가 사용하는 렌더링 방식은 SSR이다. 각 방식의 동작방식과 장단점을 알아보고, 전통적인 방식을 벗어나, SPA에서도 적절히 SSR을 구현했을 때의 장점과 그 이유를 알아보자.
CSR(Client Side Rendering)에선 브라우저가 서버에 HTML과 JS 파일을 요청한 후 로드되면 사용자의 상호작용에 따라 JS를 이용해서 동적으로 렌더링을 시킨다.
SSR(Server Side Rendering)에선 브라우저가 페이지를 요청할 때마다 해당 페이지의 렌더링 준비를 마친 HTML을 받아와 일단 화면에 보여준 후 관련 JS를 HTML과 매칭(hydration)시킨다.