Next.js

React, Vue로 프로젝트를 진행한다는 것은 SPA(Single Page Application)을 만들어야
한다는 것인데, SPA의 큰 단점은 클라이언트 서버 렌더링(CRS)
즉 첫 요청시 한페이지만 불러온 후 기존 페이지를 수정해서 보여주는 형태이기 때문에 아래와 같은 문제점이 생깁니다.

1. 검색엔진의 어려움, SEO의 최적화 문제
2. 처음 모든 페이지를 다 보여줘 초기 구동속도 느림

이러한 문제 때문에 Next.js가 탄생하였다.

검색엔진의 어려움 해결

먼저 이 문제가 나온 배경부터 알아야한다.
위에서 언급하였듯이 CRS 방식은 한 페이지 내에서 js를 수정하는 방식이다. 
일반적으로 검색 크롤러는 데이터를 긁어모을 때 JS를 해석해 노출시킨다.
싱글 페이지로 이루어진 어플리케이션은 정보들이 View에서 만들어지기 이전이기 
때문에 검색에 나타나지 않을 수 있다.

=> Server Side Rendering(SSR)을 통하여 해결
SSR의 동작 방식은 View를 서버에 랜더링 하여 가져오기 때문에 그 문제를 해결할 수 있다.

초기 구동속도의 저하

싱글 페이지로 구현되어 있는 어플리케이션은 초기 렌더링때 
모든 컴포넌트를 내려받기 때문에 용량이 커질수록 초기 구동 속도가 저하된다.

=> 코드 스플리팅을 통하여 해결
사용자가 첫 접속을 할때 첫 페이지만 불러주고 그 다음페이지로 이동했을 때 그 페이지만 랜더링 할 수 있도록 한다.

결국 CSR을 SSR로 하기 위함.....