작성
·
43
·
수정됨
0
1) prefetching 이 초기 1회만 발생하는지, 페이지를 이동할때마다 해당 페이지에 맞춰서 발생하는지가 궁금합니다.
초기 접속이후에는 CSR 방식으로 동작해서 서버에서 렌더링이 발생하지 않는다고 배웠는데,
이동 가능한 페이지에 대해서 prefetching 한다고 하니,
인덱스 페이지에서 바로 이동 가능한 페이지가 아닌 경우 (특정 페이지를 통해서만 이동가능한 페이지)
의 prefetching은 어떤식으로 처리되는지가 궁금합니다.
2) 초기접속시 전달받는 JS Bundle에는 인덱스 페이지에서 이동 가능한 페이지들에 대한 JS 파일만 구성되어 있는 것인지 궁금합니다. 그 이후에 다른 페이지에 이동 요청을 보내면 필요에 따라 JS Bundle을 추가로 서버에서 전달받는 건가요?
답변 2
0
안녕하세요 이정환입니다.
프리페칭은 하나의 페이지에 대해 최초 1회만 발생하게 됩니다. 즉 동일한 페이지를 두번 이상 프리페칭하지 않습니다. 인덱스 페이지에서 바로 이동가능한 페이지가 아닐 경우 인덱스 페이지에 접속했을 때에는 프리페칭이 이루어지지 않습니다. 해당 페이지는 해당 페이지에 접근하는 링크가 렌더링 되어 있는 페이지(또는 router.prefetch가 동작할때)에서 프리페칭 됩니다.
초기 접속시 전달받는 JS Bundle은 초기 접속한 페이지의 컴포넌트만 포함한 JS Bundle입니다. 강의에서 말씀드렸듯 Next.js는 JS Bundle의 용량을 조절하기 위해 페이지별로 자바스크립트 코드를 분리해 번들 형태로 저장합니다. 그리고 초기 접속 요청이 들어왔을 때에는 현재 접속 요청이 들어온 페이지의 번들만 보냅니다.
초기 접속 완료 이후 다른 페이지로 이동할 때에 자바스크립트 번들을 받아오는게 아니라 프리페칭으로 초기 접속이 완료된 이후 다른 페이지로 이동하기 전에 번들을 받아옵니다.
앞선 답변에서 말씀드린대로 초기 접속 완료 이후에 프리페칭으로 현재 페이지에서 이동 가능한 다른 페이지들의 JS Bundle을 불러옵니다.
따라서 특정 페이지를 요청할 때 (접속 요청을 보냈을 때) JS Bundle을 불러오는게 아니라, 그 이전에 해당 페이지에 이동할 수 있는 상황이 되었을 때 미리 JS Bundle을 불러오고 이를 프리페칭 이라고 정의하는 것 입니다.
의문이 남으신다면 언제든 질문 주셔도 괜찮습니다. 다만 이 질문에 대해서는 우리 강의의 프리페칭에 대해 설명하고 있는 2.4) 프리페칭 챕터를 다시 수강하시면 가장 빨리 느낌을 잡으실 수 있을 걸로 보여 추천드립니다.
0
안녕하세요, 인프런 AI 인턴입니다. Byoungmin Kang님!
Next.js에서 페이지 네비게이션 시 prefetching과 js bundle 요청에 관한 질문을 주셨네요. 이 주제를 이해하는 데는 Next.js의 동작 방식을 이해하는 것이 중요합니다.
초기 접속(인덱스 페이지 접속)
인덱스 페이지에서 이동할 수 있는 모든 페이지에 대한 prefetching
A페이지로 이동 요청
A페이지에서 필요한 js bundle 서버에 요청(필요한 경우)
A 페이지로 이동
A페이지에서 이동할 수 있는 모든 페이지에 대한 prefetching
더 자세한 설명을 원하신다면 아래 유사한 내용의 답변을 참고해 보세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
그럼 초기접속 이후의 js 번들은
언제 받아오나요?
특정 페이지를 요청할때 그
페이지에서 접근가능한 페이지들의 번들을 받아오는건가요?