패스잇
프론트엔드 개발 · 심화

Nuxt 3에서 제공하는 SSR, SSG, CSR 렌더링 모드 외에, ISR(Incremental Static Regeneration)을 구현해야 하는 시나리오가 발생했을 때, 이를 Nuxt 3 환경에서 어떻게 구현할 수 있으며, ISR이 SSR이나 SSG 대비 갖는 장점과 한계점은 무엇인지 설명해 주십시오.

힌트 · ISR은 SSG의 장점과 SSR의 동적 업데이트 기능을 결합하여 빌드 시간을 단축하고 최신 데이터를 제공하며, 캐시 무효화 전략이 중요합니다.

VercelNetlifyCache-Controlstale-while-revalidateCDN

모범답안

Nuxt 3에서 ISR을 구현해야 하는 시나리오는 데이터가 자주 변경되지만, 매번 빌드하거나 SSR을 하기에는 부담스러울 때 발생합니다. 예를 들어, 뉴스 기사나 블로그 포스트처럼 내용이 주기적으로 업데이트되는 경우죠.

Nuxt 3에서 ISR을 구현하는 방법은 크게 두 가지입니다. 첫째, Vercel이나 Netlify 같은 플랫폼의 ISR 기능을 활용하는 것입니다. 이 플랫폼들은 routes 옵션을 통해 특정 경로에 대한 ISR 설정을 제공합니다. 둘째, 서버리스 함수와 캐시 전략을 직접 구현하는 것입니다. Cache-Control 헤더의 stale-while-revalidate 옵션을 사용하여 캐시된 데이터를 먼저 보여주고, 백그라운드에서 데이터를 업데이트하는 방식을 사용할 수 있습니다.

ISR은 SSG보다 최신 데이터를 제공할 수 있고, SSR보다 서버 부하를 줄일 수 있다는 장점이 있습니다. 하지만 캐시 무효화 전략을 잘못 설정하면 오래된 데이터를 보여줄 수 있고, 서버리스 함수를 직접 구현하는 경우 복잡도가 증가한다는 단점이 있습니다. CDN을 함께 사용하면 캐시 효율을 높이고 사용자 경험을 개선할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Vue.js / Nuxt 면접 질문

← Vue.js / Nuxt 면접 질문 전체 보기