렌더링 방식에 대해서 여러 블로그 글을 읽었고, 나름 개념에 대해서 익숙해졌다고 생각했는데, 막상 다른 누군가에게 설명한다고 했을 때 제대로 설명할 수 없었다.
정말 단어의 뜻 정도로만 알고 있기 때문이라고 생각했고, 중요한 개념인만큼 글로 정리해야겠다.
먼저 SPA에 대한 글을 확인해보자.
단일 페이지 애플리케이션(Single Page Application, SPA)는 모던 웹의 패러다임이다. SPA는 기본적으로 단일 페이지로 구성되며 기존의 서버 사이드 렌더링과 비교할 때, 배포가 간단하며 네이티브 앱과 유사한 사용자 경험을 제공할 수 있다는 장점이 있다.
SPA는 기본적으로 웹 애플리케이션에 필요한 모든 정적 리소스를 최초 접근시 단 한번만 다운로드한다. 이후 새로운 페이지 요청 시, 페이지 갱신에 필요한 데이터만을 JSON으로 전달받아 페이지를 갱신하므로 전체적인 트래픽을 감소시킬 수 있고, 전체 페이지를 다시 렌더링하지 않고 변경되는 부분만을 갱신하므로 새로고침이 발생하지 않아 네이티브 앱과 유사한 사용자 경험을 제공할 수 있다.
출처: poiemaweb - Single Page Application & Routing
정리하자면 SPA는 곧 CSR이다. Angular, Vue 같은 프레임워크나, React 같은 라이브러리가 사용하는 방식이다.
html
파일을 보내준다. html
파일에 있는 javascript
번들 파일을 다운로드 받은 후 ajax
를 통해 API
요청을 수행하여 동적 컨텐츠를 가져오고 파싱하여 최종 컨텐츠를 렌더링한다.html
만 노출되기 때문.CSR 방식이 SPA에서 채택한 방식이라면, SSR 방식을 사용하는 어플리케이션은 MPA (Multiple Page Application)이다.
사용자와의 인터렉션이 발생할 때마다 서버로부터 새로운 html
파일을 받아와서 해당 링크로 이동할때 페이지 전체를 새로 렌더링하는 전통적인 웹 페이지 구성 방식이다.
html
파일을 준비한다.html
파일은 추가 렌더링 및 표시를 위해 클라이언트 브라우저로 전송된다(response).html
을 다운로드하고 최종 사용자가 사이트를 볼 수 있도록 한다. 자바스크립트가 없는 정적 페이지가 먼저 출력된다.html
을 받는 CSR보다 속도가 빠르다. html
파일을 생성해서 응답으로 보내기 때문에 부분별로 리렌더링을 하지 않는다.SSG는 서버에서 html
을 보내준다는 측면에선 SSR과 비슷하지만, 보내주는 html
파일을 "언제" 만들어주는지에 차이가 있다. SSR은 요청과 동시에 서버에서 html
파일을 만들어준다. 하지만 SSG는 페이지들을 모두 미리 만들어둔 후에 요청 시에 해당 페이지를 반환하는 차이점이 있다.
보통 SSG 렌더링을 사용하는 경우는 자주 바뀌지 않는 페이지, 즉 회사소개 같은 캐싱하기 좋은 정보성 페이지를 렌더링할 때 많이 사용된다.
html
파일을 반환한다.html
파일을 받아서 전달하기 때문에 서버의 부하가 SSR 방식보다 적다.출처: