Server Side Rendering
- 서버에서 렌더링 준비를 마친상태로 클라이언트에 전달하는 방식
Client Side Rendering
- 클라이언트에서 렌더링이 일어남, 서버는 요청을 받으면 클라이언트에 html과 JavaScript를 보내주고 클라이언트는 그것을 받아 렌더링을 시작함
웹페이지 로딩 시간
첫 페이지 로딩시간
CSR
의 경우 Html, CSS, 모든 Script를 한번에 불러온다.
SSR
의 경우 필요한 부분의 html과 Script들만 불러온다.
평균적으로 SSR
이 더 빠르다.
나머지 로딩 시간
첫 페이지 로딩이 끝난 후, 사이트의 다른 곳으로 이동할 때
CSR
의 경우 이미 첫 페이지 로딩할 때 나머지 부분을 구성하는 부분을 받아와서 빠르다.
SSR
의 경우 첫 페이지를 로딩한 과정을 다시 실행해서 더 느리다.
SEO 대응
검색 엔진은 자동화된 로봇인 크롤러
로 웹 사이트를 읽는다.
CSR
의 경우 JavaScript를 실행시켜 동적으로 컨텐츠가 생성도기 때문에 JavaScript가 실행되야 metadata가 바뀐다.
SSR
의 경우 서버 사이드에서 컴파일 되어 클라이언트에 넘어오기 때문에 크롤러에 대응하기 용이하다.
서버 자원 사용
SSR
이 매번 서버에 요청하기 때문에 서버자원을 더 많이 사용한다.
- 네트워크가 느릴 때
- SEO(검색엔진 최적화)가 필요할 때
- 최초 로딩이 빨라야하는 사이트를 개발할 때
- 메인 Script가 크고 로딩이 매우 느릴 때 CSR은 메인 스크립트가 로딩이 끝나면 API로 데이터 요청을 보낸다. 하지만 SSR은 한번의 요청에 아예 렌더가 가능한 페이지가 돌아온다.
- 웹 사이트가 상호작용이 별로 없을 때
- 네트워크가 빠를 때
- 서버의 성능이 좋지 않을 때
- 사용자에게 보여줘야하는 데이터의 양이 많을 때
- 메인 Script가 가벼울 때
- SEO에 상관 없을 때
- 웹 어플리케이션에 사용자와 상호작용할 것들이 많을 때(렌더링이 되지 않아 행동을 막는 것이 경험에 유리함)