단북
프론트엔드 기술 면접·Next.js 핵심 개념

앱 라우터와 페이지 라우터의 차이점은 무엇인가요?

Next.js의 두 라우팅 패러다임인 App Router(app/)와 Pages Router(pages/)의 구조와 기능 차이를 정리합니다.

Next.js에는 두 가지 라우터가 있습니다. 전통적인 페이지 라우터(pages/) 와, Next.js 13에서 도입돼 현재 권장되는 앱 라우터(app/) 입니다.

페이지 라우터 (pages/)

pages/ 폴더의 파일이 곧 경로가 됩니다. 데이터 패칭은 페이지 단위 함수로 합니다.

  • getServerSideProps — 요청마다 서버에서 데이터 패칭(SSR)
  • getStaticProps / getStaticPaths — 빌드 시 데이터 패칭(SSG)
  • 모든 컴포넌트가 기본적으로 클라이언트 컴포넌트

앱 라우터 (app/)

app/ 폴더를 쓰며, 서버 컴포넌트가 기본입니다. 폴더 안의 특수 파일로 UI를 구성합니다.

  • page.tsx — 해당 경로의 페이지
  • layout.tsx — 중첩 가능한 공통 레이아웃(상태 유지)
  • loading.tsx — Suspense 기반 로딩 UI
  • error.tsx — 에러 바운더리
  • 데이터 패칭은 서버 컴포넌트에서 async/await로 직접

핵심 차이

구분페이지 라우터앱 라우터
폴더pages/app/
기본 컴포넌트클라이언트서버 컴포넌트
데이터 패칭getServerSideProps컴포넌트 내 async/await
레이아웃_app/_document중첩 layout.tsx
스트리밍제한적Suspense·스트리밍 지원

두 라우터는 한 프로젝트에서 공존할 수 있어 점진적 마이그레이션이 가능합니다. 신규 프로젝트는 앱 라우터가 권장됩니다.

앱 라우터(app/)와 페이지 라우터(pages/)의 차이로 옳은 것은?

이 레슨을 다 읽으셨나요?

완료 표시는 이 브라우저에 저장됩니다.