먼저 공우 홈페이지에 들어가 network 탭에서 Doc 파일을 확인한다. chrome devtools network tabㅇ 역시 최초 진입한 페이지의 html만 가져오고, 다른 페이지로 이동하여도 추가적인 html 요청은 없다.
다른 페이지에 대한 정보를 언제 가져오는지 알기위해 Fetch/XHR과 JS 탭을 확인한다. Fetch/XHR tabJS tab 최초 페이지에 진입하고 바로, 다른 페이지에 필요한 json과 js파일들을 모두 불러온다.
즉 최초 페이지는 SSG(또는 SSR)이라 html 파일을 받아와 FCP를 빠르게 하고, 다른 페이지들은 미리 js를 불러와두어 page routing을 할 때 CSR로 동작해 페이지 전환 속도까지 빠르게 한 것이다.
Next.js의 페이지 로드 속도가 빠른 이유는 알았으니 언제 해당 데이터들을 요청하는지 알아보고자 한다. Next Link에 대한 공식 문서를 읽어보아야한다. https://nextjs.org/docs/api-reference/next/link Link 컴포넌트에 prefetch prop이 있고 default값은 true이다. 이 경우 viewport에 Link가 있을 경우 해당 url에 대한 js와 json data를 요청하는 것이다. 이때, SSG일 경우 미리 계산된 json data를 받아올 수 있지만 SSR일 경우에는 받아올 수 없다(SSR은 페이지 요청 시에 data를 요청하기 때문에).