서버에서 전체 페이지(빈 페이지)를 최초 렌더링하고 사용자가 요청할 때마다 필요한 부분만 서버로부터 받아 클라이언트 내(브라우저)에서 렌더링 하는 것
첫 페이지 로딩 속도: 서버에 첫 페이지 로딩 요청 시, 전체 페이지에 대한 모든 문서 파일을 받기에 Server Side Rendering(SSR) 보다 로딩 속도가 느리다.
검색엔진최적화(SEO) 추가 작업 필요: 검색엔진 크롤러가 웹사이트에 대한 데이터를 제대로 수집하지 못하는 경우가 발생 할 수 있다. 구글 검색엔진의 경우 자바스크립트 엔진이 내장되어 있어 크롤링이 되지만, 네이버 또는 다음의 경우 검색엔진이 제대로 크롤링하지 못하지 때문에 별도의 보완작업이 필요하다.
SPA 단점을 보완하기 위해서
1) SEO 최적화
2) 초기 로딩 시간 개선
Next.js 프로젝트에서 yarn start / npm run start 스크립트를 실행하면 아래 에러 메시지가 나온다.
Error: Could not find a production build
실행되는 코드가 아니라 에러 메시지여서 Next.js Github 레포지토리에서 찾아보니 https://github.com/vercel/next.js/blob/canary/errors/production-start-no-build-id.md 이렇게 나온다. 뭔가 잘못 된 것인가... 잘 모르겠다.
구글해보니 stack overflow에 아래와 같이 나온다. 3번에서 요구하는 파일이 이거인지 모르겠다.
In Next.js, next dev is used to run the app in development mode. On the other hand, next start is used to run the app in production mode, but requires next build to be run first to generate an optimized production build.
