Next.js의 두 가지 사전 렌더링 방식

SB신범
2분 읽기
조회수 로딩 중...

Next.js의 두 가지 사전 렌더링 방식

Next.js는 React 프레임워크로, 사전 렌더링(Pre-rendering)을 기본 제공합니다. 사전 렌더링은 모든 페이지를 클라이언트 측 JavaScript로 렌더링하는 대신, HTML을 미리 생성하는 방식입니다.

사전 렌더링의 두 가지 형태

Next.js에는 두 가지 형태의 사전 렌더링이 있습니다:

  1. 정적 생성(Static Generation)
  2. 서버 사이드 렌더링(Server-side Rendering)

이 둘의 주요 차이점은 HTML을 생성하는 시점에 있습니다.

정적 생성 (Static Generation)

출처: https://nextjs.org/ 정적 생성빌드 시점에 HTML을 생성하는 방식입니다. 이렇게 생성된 HTML은 CDN에 캐시되어 각 요청마다 재사용됩니다.

jsx
1// 정적 생성 예제 (데이터가 있는 경우) 2export async function getStaticProps() { 3 const data = await fetchData(); 4 return { 5 props: { data }, 6 }; 7} 8 9function BlogPost({ data }) { 10 return <div>{data.title}</div>; 11} 12 13export default BlogPost;

서버 사이드 렌더링 (Server-side Rendering)

출처: https://nextjs.org/

서버 사이드 렌더링각 요청마다 서버에서 HTML을 생성하는 방식입니다. 각 요청마다 최신 데이터로 페이지를 렌더링합니다.

jsx
1// 서버 사이드 렌더링 예제 2export async function getServerSideProps(context) { 3 const data = await fetchData(context.params); 4 return { 5 props: { data }, 6 }; 7} 8 9function DynamicPage({ data }) { 10 return <div>{data.content}</div>; 11} 12 13export default DynamicPage;

유연한 선택 가능

Next.js의 중요한 특징은 각 페이지별로 렌더링 방식을 선택할 수 있다는 점입니다. 대부분의 페이지에는 정적 생성을 사용하고 일부 페이지에만 서버 사이드 렌더링을 사용하는 "하이브리드" Next.js 애플리케이션을 구축할 수 있습니다.

렌더링 방식 선택 가이드

특성정적 생성서버 사이드 렌더링
생성 시점빌드 시요청 시
성능매우 빠름 (CDN 캐싱)중간 (매 요청마다 생성)
데이터 최신성재배포 필요항상 최신 상태
적합한 사례마케팅 페이지, 블로그, 제품 목록개인화된 대시보드, 실시간 데이터

올바른 렌더링 전략을 선택하는 것이 성능과 사용자 경험에 큰 영향을 미칠 수 있습니다.