Route Segment Config는 Next.js의 **앱 라우터(App Router)**에서 특정 경로(segment)의 동작 방식을 제어하는 설정 파일입니다. 이 파일을 사용하면 페이지나 레이아웃의 정적/동적 렌더링 방식, 캐싱 전략 등을 세밀하게 조정할 수 있습니다.

page.tsx 또는 layout.tsx 파일 내에서 export const 문을 사용하여 설정 변수를 정의합니다.


주요 설정 옵션

1. dynamic

이 옵션은 경로 세그먼트의 렌더링 방식을 제어합니다.

  • 'auto' (기본값): Next.js가 자동으로 정적(Static) 또는 동적(Dynamic) 렌더링을 판단합니다.
  • 'force-static': 해당 경로를 무조건 정적으로 렌더링합니다. 요청이나 쿠키와 같은 동적 데이터가 있더라도 빌드 시 HTML을 생성합니다.
  • 'force-dynamic': 해당 경로를 무조건 동적으로 렌더링합니다. 모든 요청에 대해 서버에서 렌더링을 다시 수행합니다.

사용 예시:

JavaScript
 
// app/blog/[slug]/page.tsx
export const dynamic = 'force-static';

2. revalidate

이 옵션은 정적 렌더링된 페이지의 재검증(revalidation) 주기를 설정합니다.

  • false: 캐싱하지 않고, 항상 동적으로 렌더링합니다.
  • 0: 캐싱하지만, 매 요청마다 캐시를 재검증합니다.
  • number: 캐시의 유효 기간을 초 단위로 설정합니다. 이 시간이 지나면 다음 요청 시 페이지를 다시 렌더링합니다.

사용 예시:

JavaScript
 
// app/products/page.tsx
export const revalidate = 60; // 60초마다 페이지를 재검증합니다.

3. fetchCache

fetch 함수에 대한 캐싱 동작을 제어합니다. revalidate 옵션과 연동되어 동작하며, 기본값은 auto입니다.

  • 'force-no-store': 모든 fetch 요청을 캐싱하지 않도록 강제합니다.
  • 'default-no-store': 기본적으로 캐싱하지 않지만, revalidate 옵션이 설정된 fetch 요청은 캐시합니다.

왜 필요한가?

Route Segment Config는 Next.js의 핵심 기능인 **하이브리드 렌더링(Hybrid Rendering)**을 세밀하게 제어하는 데 필수적입니다. 개발자는 각 페이지의 특성(예: 자주 바뀌는 데이터 vs. 정적인 콘텐츠)에 따라 최적의 렌더링 방식을 선택하여 성능과 SEO를 동시에 향상시킬 수 있습니다.

 

공식문서를 참고하자

https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config

'개발 공부 > Next' 카테고리의 다른 글

[Next] useOptimistic  (0) 2025.09.18
[Next] generateStaticParams  (0) 2025.09.13
[Next] unstable_cache  (0) 2025.09.11
[Next] Parallel Routes  (0) 2025.09.07
[Next] Intercepting Route  (0) 2025.09.07

+ Recent posts