프론트엔드 개발 · 심화
Next.js 14의 Partial Prerendering(PPR)을 사용할 때, 특정 컴포넌트가 동적(Dynamic) 렌더링되도록 트리거하는 가장 보편적인 React API는 무엇인가요?
힌트 · 헤더(cookies, headers)나 동적 파라미터(searchParams)를 읽는 Next.js 내장 함수를 호출하면 해당 구간이 동적으로 간주되어 Suspense 바운더리 안에서 스트리밍됩니다.
useSearchParamsuseCookiesheaderscookies
모범답안
Next.js 14의 Partial Prerendering 환경에서 특정 컴포넌트를 동적으로 렌더링하도록 트리거하는 가장 일반적인 React API는 Next.js에서 제공하는 useSearchParams, useCookies, 그리고 headers()와 cookies() 함수입니다.
이 함수들을 컴포넌트 내에서 호출하면 Next.js는 해당 컴포넌트가 요청 시간에 따라 달라지는 정보를 필요로 한다고 판단합니다. 따라서 해당 컴포넌트는 정적으로 사전 렌더링되지 않고, Suspense 바운더리 내에서 동적으로 렌더링되어 스트리밍됩니다. 예를 들어, useSearchParams를 사용하여 URL 쿼리 파라미터를 읽거나, headers()를 사용하여 요청 헤더에 접근하는 경우, 해당 컴포넌트는 동적 렌더링됩니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Next.js 면접 질문
- App Router의 Route Handlers(`app/api/route.ts`)에서 동적 라우팅 파라미터(예: `[id]`)에 접근하려면 함수의 매개변수를 어떻게 정의해야 하나요?
- RSC Payload(React Server Component Payload) 내부 구조는 대략적으로 어떤 형태로 구성되어 있나요?
- React 렌더링 파이프라인에서 RSC(React Server Component)가 생성한 Payload를 클라이언트(브라우저)가 받아 기존 DOM과 병합하는 과정(Reconciliation)을 담당하는 React API는 무엇인가요?
- Next.js의 Data Cache가 무효화(revalidate)될 때, 즉시 백그라운드에서 새 데이터를 가져오나요, 아니면 다음 요청이 올 때까지 기다렸다가 무효화 처리(On-demand)를 하나요?
- Edge Runtime 환경에서 작동하는 Middleware가 Vercel의 KV(Redis)나 데이터베이스에 접근할 때 지연 시간을 줄이기 위해 설계된 아키텍처적 위치의 특징은 무엇인가요?
- 대규모 Next.js 프로젝트를 Turborepo 모노레포로 분리할 때, 공통으로 사용하는 UI 컴포넌트 패키지(예: `@repo/ui`)를 Next.js 앱에서 트랜스파일(Transpile) 하려면 `next.config.js`에 어떤 속성을 추가해야 하나요?