Ajax(Asynchronous JavaScript and XML) 등장
👍 장점
→ 초기 로딩 이후 구동 속도가 빠르게 렌더링 되기 때문에 UX(사용자 경험) 향상
→ 서버에 요청하는 횟수가 훨씬 적어지기 때문에 서버의 부담이 덜함
→ TTV 와 TTI 사이 간극 없음
❓ TTV TTI
TTV(Time To View): 사용자가 웹 브라우저에서 내용을 볼 수 있는 시점
TTI(Time To Interact): 사용자가 웹 브라우저에서 인터랙션 할 수 있는 시점
👎 단점
→ 검색 엔진의 검색 봇이 크롤링하는데 어려움을 겪기 때문에 검색엔진 최적화(Search Engine Optimization) 에 불리
구글 봇의 경우 JS를 지원하지만, 다른 검색 엔진의 경우 그렇지 않기 때문에 문제 발생
→ 모든 스크립트 파일이 로드될 때까지 기다려야 하기 때문에 초기 로딩 속도 느림
리소스를 chunk 단위로 묶어서 요청할 때만 다운 받게 하는 방식으로 완화할 수 있지만 완벽하게 해결 불가능
❓ SEO (Search Engine Optimization)
웹사이트가 유기적인 검색 방식을 통해 검색 엔진에서 상위에 노출될 수 있도록 최적화하는 과정. 비즈니스 유형이 어떤 것이든 가장 중요한 마케팅 유형 중 하나
❓ chunk
모든 코드를 하나의 거대한 파일(Bundle)로 만들지 않기 위해 여러 개의 chunk 라는 단위로 나눔. 코드가 나뉘는 방법에 대해 임의로 구성 가능
👍 장점
→ 초기 로딩 속도가 빠름. 사용자가 컨텐츠를 빨리 볼 수 있음
→ 검색엔진 최적화(SEO)에 유리
👎 단점
→ SPA에 비해 UX 저하
→ 매번 서버로부터 페이지를 전달받기 때문에 페이지를 생성하는 시간 소요됨
→ 매번 서버에게 요청하기 때문에 서버의 부하가 커질 수 있으며, 서버 비용이 많이 듬
→ TTV와 TTI 사이 간극 발생
References:
https://github.com/baeharam/Must-Know-About-Frontend/blob/main/Notes/frontend/csr-ssr.md
https://velog.io/@eeeve/%EC%9B%B9-%EB%A0%8C%EB%8D%94%EB%A7%81-%EB%B0%A9%EC%8B%9D-CSR-SSR-SSG
https://medium.com/walmartglobaltech/the-benefits-of-server-side-rendering-over-client-side-rendering-5d07ff2cefe8