우리가 사용하는 크롬과 같은 브라우저를 UI, 그리고 React를 웹팩과 같은 번들러로 빌드하고 이를 뿌려주는 node.js 와 같은 JS Runtime , 마지막으로
없어서는 안될 서버가 위의 도식과 같이 있습니다.
클라이언트 사이드 렌더링에서 특정 페이지를 url등으로 요청했을때 서버는 기본 html 템플릿과 react.js를 렌더링할 수 있는 js 파일을 전달해줍니다.
이제 우리 브라우저에서는 서버에서 받은 js 파일을 이용해 사용자가 요청한 UI를 html템플릿이라는 하얀 도화지에 그려주게 됩니다.
그리고 클릭과 같은 각종 event가 일어났을 때 마다
서버사이드 랜더링은 위와 같이 표현됩니다.
js runtime이 없죠?
필요한 그림은 서버에서 모두 전담해서 그려주기 때문입니다.
따라서 js runtime에서 발생했던 content loading 시간이 따로 없습니다.
CSR에서는 이미 필요한 JS 파일들을 받아왔기 때문에 사용자의 이벤트 발생이나 뷰 전환과 같은 렌더링 요청이 일어나도 서버에 갔다 올 필요가 없이 이미 받아온 js bundle로 해결이 됩니다.
SSR이 가진 장점은 웹 페이지를 이용한 사업아이템에서 매우 중요한데요,
바로 SEO 입니다.
본 글은 아래 블로그 글을 참고했습니다 .
Client-side rendering vs. server-side rendering - AdamZerner
잘 읽었습니다.