Next의 App Router와 기존 Page Router의 차이 비교

Kim Young Jae·2024년 6월 30일
0

Next.js 13은 새로운 App Router와 함께 중요한 업데이트를 제공합니다. 이 블로그 포스트에서는 새로운 App Router와 기존 Page Router의 차이를 탐구할 것입니다. 이들의 기능, 장점 및 잠재적인 사용 사례를 살펴보겠습니다.

소개

Next.js는 서버 사이드 렌더링과 정적 사이트 생성과 같은 기능을 제공하여 오랫동안 인기 있는 React 애플리케이션 프레임워크였습니다. Next.js 13에서는 더 유연하고 확장 가능한 라우팅 시스템을 제공하기 위해 새로운 App Router가 도입되었습니다. 이를 기존의 Page Router와 비교해 보겠습니다.

기존 Page Router

이전 버전의 Next.js에서는 라우팅이 파일 기반이었습니다. pages 디렉토리 내부의 파일 구조가 라우트를 정의했습니다. 예를 들어:

pages/
  ├── index.js  // 라우트: /
  ├── about.js  // 라우트: /about
  └── blog/
      └── [id].js  // 동적 라우트: /blog/:id

장점

  • 간단함: 이해하고 설정하기 쉬움.
  • 관습 우선 구성: 최소한의 설정만 필요.

단점

  • 확장성 문제: 애플리케이션이 커짐에 따라 단일 pages 디렉토리에서 라우트를 관리하는 것이 번거로울 수 있음.
  • 제한된 커스터마이징: 고급 라우팅 시나리오에 대한 유연성이 부족함.

Next.js 13의 App Router

App Router는 더 모듈화된 방식으로 라우트를 정의할 수 있게 하여, 더 많은 커스터마이징을 허용합니다.

예제 구성

App Router를 사용하면 파일 구조에서 라우트 정의를 분리하여 구성 파일에 라우트를 정의할 수 있습니다:

// app/routes.js
export default [
  {
    path: '/',
    component: HomePage,
  },
  {
    path: '/about',
    component: AboutPage,
  },
  {
    path: '/blog/:id',
    component: BlogPost,
  },
];

장점

  • 모듈성: 여러 파일에 라우트를 정의하여 조직화가 향상됨.
  • 유연성: 중첩 라우트와 가드를 포함한 고급 라우팅 논리에 대한 더 큰 제어 가능.
  • 향상된 성능: 대규모 애플리케이션에서도 더 나은 성능을 위해 최적화됨.

단점

  • 학습 곡선: 기존 Page Router에 비해 설정이 더 복잡함.
  • 구성 오버헤드: 초기 구성에 더 많은 노력이 필요.

사용 사례

기존 Page Router를 사용할 때

소규모에서 중규모 프로젝트: 작은 프로젝트에는 Page Router의 간단함이 유리함.
빠른 프로토타이핑: 쉬운 설정으로 빠른 개발 가능.

App Router를 사용할 때

대규모 애플리케이션: 복잡한 라우팅 요구 사항을 가진 애플리케이션에 더 적합.
고급 라우팅 필요: 중첩 라우트, 가드, 더 유연한 라우팅 논리가 필요한 경우.

결론

Next.js 13의 App Router는 기존 Page Router의 한계를 해결하는 더 강력하고 유연한 라우팅 접근 방식을 제공합니다. 그러나 둘 사이의 선택은 프로젝트의 특정 요구 사항에 따라 달라집니다. 소규모 애플리케이션에는 기존 Page Router가 여전히 좋은 선택이며, 더 크고 복잡한 애플리케이션은 App Router의 고급 기능을 활용할 수 있습니다.

profile
프론트엔드 뭐시기 주로 하는 사람

0개의 댓글