브라우저 동작을 공부하면서 위 주제에 대해서 잠깐 훑어보고 넘어갔다. 글을 쓰다보니 내용이 맞는지 몇 번씩 확인하는 과정을 거치면서 시간이 오래 걸린다.
React가 대표적이다. 모든 랜더링을 클라이언트에서 처리하게 된다. HTML 파일의 내용은 app.js
파일을 받아온다. app.js
에서 랜더링에 필요한 JS, CSS 파일을 받아와서 랜더링한다.
최근 많은 사이트가 사용하는 양식. 사전에 서버에서 랜더링된 페이지를 클라이언트에 제공한다. 미리 만들어진 HTML을 제공한다. 그 이후 상호작용 할 수 있는 JS 파일을 전달한다. 빠른 TTV를 달성할 수 있다. 하지만 JS 파일을 따로 받아오므로 TTI(Time To Interact) 까지는 시간이 조금 더 걸린다.
Server Side Rendering 기술 중 하나. 예시로 구글 검색 페이지가 있다. 검색을 하면 상단의 검색창과 메뉴 버튼은 빠르게 뜨고 조금 기다리면 검색 결과가 출력된다.
또 다른 예시는 네이버 메인페이지다. 정보량이 많지만 빠르게 출력된다.
CSR의 단점을 보완하기 위해서 (특히 React) SSR을 제공하는 Next.js 라는 기술도 있다. SSR 기반으로 SEO 최적화 달성,불러오기 시간 개선을 위한 Code Splitting 기능을 제공한다.
그 외로 Gatsby나 다른 솔루션들에서 CSR의 장점과 SSR의 장점을 합치기 위한 시도가 이루어지고 있다.