브라우저에서 실제로 우리가 보는 화면에 필요한 데이터를 어디서 요청하고 웹페이지에 렌더링 하는 방식에 따라 구분이 가능하다.
서버 쪽에서 렌더링 준비를 끝마친 상태로 클라이언트에게 전달하는 방식
기존에 존재하던 방식으로 사용자가 웹페이지에 접근할 때 서버에 페이지에 대한 요청을 하며 서버에는 HTML, View와 같은 리소스 들을 어떻게 보여줄지 해석하고 렌더링하여 사용자에게 반화한다.
일반적으로 아래와 같이 동작한다.
사용자가 웹 페이지를 방문하면(request), 서버는 리소스를 확인하고 페이지 내에 있는 서버측 스크립트를 실행 후 HTML 컨텐츠를 컴파일 및 준비한다.
컴파일된 HTML은 추가 렌더링 및 표시를 위해 클라이언트 브라우저로 전송된다(response).
브라우저는 HTML을 다운로드하고 최종 사용자가 사이트를 볼 수 있도록 한다.
브라우저는 자바스크립트를 다운로드하고 실행하면서 페이지를 대화형(interactive)으로 만든다.
사용자가 페이지를 이동할 경우, 위 동작을 반복한다.
SSR과 달리 렌더링이 클라이언트 쪽에서 일어난다. 즉, 서버는 요청을 받으면 클라이언트에 HTML과 JS를 보내주고 클라이언트는 그것을 받아 렌더링을 시작한다.
최초에 1번 서버에 전체 페이지를 로딩하여 보여주고 이후에는 사용자의 요청이 올 때마다, 리소스를 서버에서 제공한 후 클라이언트가 해석하고 렌더링을 하는 방식
일반적으로 아래와 같이 동작한다.
사용자가 웹 페이지를 방문하면(request), 브라우저는 최소한의 HTML 파일을 다운로드(response) 한다. 이 HTML 파일은 script, meta, link 등의 태그를 포함하며, 빈 컨텐츠의 index.html 파일이라고 보면 된다.
브라우저는 index.html에 있는 자바스크립트 번들 파일을 다운로드한 다음 AJAX를 통해 API 요청을 수행하여 동적 컨텐츠를 가져오고 파싱하여 최종 컨텐츠를 렌더링한다.
🔵웹페이지 로드 시간
✔ 초기 페이지 로드 시간(초기 구동 시간)
✔ 페이지 이동시 마다 로딩 시간(인터렉션 속도)
⌛ TTV(Time To View)
사용자가 웹 브라우저에서 내용을 볼 수 있는 시점
⌛ TTI(Time To Interact)
사용자가 웹 브라우저에서 상호작용(클릭 등) 할 수 있는 시점
🔵 SEO
🔵 서버 자원 사용
SSR과 SCR은 서로 상반되는 장점과 단점을 가지고 있다.
생성하는 프로젝트의 성격에 따라 필요한 것으로 선택하여 작업하는 것이 좋다.
검색 엔진 최적화 (SEO, Search Engine Optimization) ? 🧐
검색엔진에서 찾기 쉼게 웹사이트의 정보를 찾기 쉽게 최적화 하는 프로세스를 의미
https://velog.io/@qkrdudgh052/SSR-CSR-%EC%B0%A8%EC%9D%B4
https://velog.io/@vagabondms/%EA%B8%B0%EC%88%A0-%EC%8A%A4%ED%84%B0%EB%94%94-SSR%EA%B3%BC-CSR%EC%9D%98-%EC%B0%A8%EC%9D%B4
https://ajdkfl6445.gitbook.io/study/web/csr-vs-ssr-vs-ssg#client-side-rendering-csr