부분 사전 렌더링은 Next.js 14에 도입된 실험적 기능입니다. 기능이 안정화되면 이 페이지의 내용이 업데이트될 수 있습니다. 실험적인 기능을 사용하지 않으려면 이 장을 건너뛰어도 됩니다. 이 장은 과정을 완료하는 데 필요하지 않습니다.
현재 경로 내에서 동적 함수(예: noStore(), cookies() 등)를 호출하면 전체 경로가 동적이 됩니다.
이것이 오늘날 대부분의 웹 앱이 구축되는 방식입니다. 전체 애플리케이션이나 특정 경로에 대해 정적 렌더링과 동적 렌더링 중에서 선택합니다.
그러나 대부분의 경로는 완전히 정적이거나 동적이지 않습니다. 정적 콘텐츠와 동적 콘텐츠가 모두 포함된 경로가 있을 수 있습니다. 예를 들어 전자상거래 사이트를 생각해 보세요. 제품 페이지의 대부분을 사전 렌더링할 수 있지만 주문형 사용자 장바구니와 추천 제품을 동적으로 가져오고 싶을 수도 있습니다.
대시보드 페이지로 돌아가서 정적 구성 요소와 동적 구성 요소 중 어떤 구성 요소를 고려하시겠습니까?
준비가 되면 아래 버튼을 클릭하여 대시보드 경로를 분할하는 방법을 확인하세요.

<SideNav> 구성 요소는 데이터에 의존하지 않으며 사용자에게 개인화되지 않으므로 정적일 수 있습니다.<Page> 구성 요소는 자주 변경되는 데이터에 의존하고 사용자에게 개인화되므로 동적일 수 있습니다.Next.js 14에는 일부분을 동적으로 유지하면서 정적 로딩 셸을 사용하여 경로를 렌더링할 수 있는 실험적인 기능인 부분 사전 렌더링의 미리 보기가 포함되어 있습니다. 즉, 경로의 동적 부분을 분리할 수 있습니다. 예를 들어:

사용자가 경로를 방문할 때:
이는 전체 경로가 완전히 정적이거나 동적인 오늘날 애플리케이션의 작동 방식과 다릅니다.
부분 사전 렌더링은 매우 빠른 정적 에지 전달과 완전한 동적 기능을 결합하며 웹 애플리케이션의 기본 렌더링 모델이 될 가능성이 있다고 믿습니다., 최고의 정적 사이트 생성과 동적 전달을 결합합니다.
부분 사전 렌더링은 React의 Current APIs를 활용합니다. 그리고 Suspense를 사용합니다. 일부 조건이 충족될 때까지(예: 데이터 로드) 애플리케이션의 렌더링 부분을 연기합니다.
대체(fallback)는 다른 정적 콘텐츠와 함께 초기 정적 파일에 포함됩니다. 빌드 시(또는 재검증 중에) 경로의 정적 부분이 사전 렌더링 되고 나머지 부분은 사용자가 경로를 요청할 때까지 연기됩니다.
Suspense에서 구성 요소를 래핑하면 구성 요소 자체가 동적으로 만들어지는 것이 아니라(이 동작을 수행하는 데 unstable_noStore를 사용했음을 기억하세요) 오히려 Suspense가 경로의 정적 부분과 동적 부분 사이의 경계로 사용된다는 점에 주목할 가치가 있습니다.
부분 사전 렌더링의 가장 큰 장점은 이를 사용하기 위해 코드를 변경할 필요가 없다는 것입니다. Suspense를 사용하여 경로의 동적 부분을 래핑하는 한 Next.js는 경로의 어느 부분이 정적이고 어느 부분이 동적인지 알 수 있습니다.
참고: 부분 사전 렌더링 구성 방법에 대해 자세히 알아보려면 부분 사전 렌더링(실험) 설명서를 참조하거나 부분 사전 렌더링 템플릿 및 데모를 사용해 보세요. 이 기능은 실험적 이며 아직 프로덕션 배포 준비가 되지 않았다는 점에 유의하는 것이 중요합니다.
요약하자면, 애플리케이션에서 데이터 가져오기를 최적화하기 위해 몇 가지 작업을 수행했습니다.
다음 장에서는 데이터를 가져올 때 구현해야 할 두 가지 일반적인 패턴인 검색과 페이지 매김을 살펴보겠습니다.