IT & 테크

Next.js 초보자 가이드 : 라우팅 개념 정리

BlackD 2025. 2. 11. 06:25
반응형

Next.js에서는 기본적으로 파일 기반 라우팅 시스템을 사용합니다.
이번 글에서는 정적 라우팅, 동적 라우팅, API 라우트, 커스텀 404 페이지까지
Next.js의 라우팅 개념을 설명하겠습니다.

✅ Next.js 라우팅 개요

Next.js의 라우팅 방식은 크게 다음과 같이 나뉩니다.

정적 라우팅 (Static Routing)

정적 라우팅은 pages/ 폴더 내에 파일을 생성하면 자동으로 URL이 생성되는 방식입니다.

📌 예제: pages/about.js 만들기

export default function About() {
  return (
    <div>
      <h1>About 페이지</h1>
      <p>이곳은 About 페이지입니다.</p>
    </div>
  );
}

브라우저에서 /about URL에 접속하면 해당 컴포넌트가 렌더링됩니다.

중첩 라우팅 (Nested Routing)

폴더를 활용하면 계층 구조의 URL을 쉽게 만들 수 있습니다.
📌 예제: pages/products/shoes.js 만들기

export default function Shoes() {
  return <h1>신발 카테고리</h1>;
}


/products/shoes URL에서 해당 페이지가 렌더링됩니다.

동적 라우팅 (Dynamic Routing)

반응형

동적 라우팅을 사용하면 URL의 특정 부분을 변수처럼 사용할 수 있습니다.

📌 예제: pages/blog/[id].js 만들기

import { useRouter } from 'next/router';

export default function BlogPost() {
  const router = useRouter();
  const { id } = router.query;

  return (
    <div>
      <h1>블로그 글 ID: {id}</h1>
      <p>이 페이지는 {id}번 블로그 글입니다.</p>
    </div>
  );
}


브라우저에서 /blog/1, /blog/2 등의 URL에 접속하면 id 값이 동적으로 변경됩니다.

다중 동적 라우팅 (Catch-all Routing

[...params].js 형식으로 파일을 만들면 여러 개의 동적 파라미터를 받을 수 있습니다.

📌 예제: pages/docs/[...slug].js 만들기

import { useRouter } from 'next/router';

export default function Docs() {
  const router = useRouter();
  const { slug } = router.query;

  return (
    <div>
      <h1>문서 페이지</h1>
      <p>경로: {JSON.stringify(slug)}</p>
    </div>
  );
}


브라우저에서 /docs/react/hooks로 접속하면 slug 값은 ["react", "hooks"]가 됩니다.

API 라우트 (API Routes)

pages/api/ 폴더에 파일을 생성하면 자동으로 API 엔드포인트가 됩니다.

📌 예제: pages/api/hello.js 만들기

export default function handler(req, res) {
  res.status(200).json({ message: "Hello, Next.js API!" });
}


브라우저에서 /api/hello에 접속하면 JSON 응답을 받습니다.

커스텀 404 페이지

Next.js에서는 pages/404.js 파일을 만들면 기본 404 페이지를 커스텀할 수 있습니다.

📌 예제: pages/404.js 만들기

export default function Custom404() {
  return (
    <div style={{ textAlign: "center", padding: "50px" }}>
      <h1>404 - 페이지를 찾을 수 없습니다.</h1>
      <p>이런! 요청하신 페이지가 존재하지 않습니다.</p>
    </div>
  );
}

존재하지 않는 페이지에 접속하면 이 404 페이지가 표시됩니다.

링크 사용법 (next/link)

Next.js에서는 next/link를 사용해 클라이언트 측 라우팅을 최적화할 수 있습니다.

📌 예제: 페이지 간 이동 버튼 만들기

import Link from 'next/link';

export default function Home() {
  return (
    <div>
      <h1>홈 페이지</h1>
      <Link href="/about">
        <button>About 페이지로 이동</button>
      </Link>
    </div>
  );
}

버튼을 클릭하면 /about 페이지로 이동합니다.

이상으로 라우팅 개념 글을 마치겠습니다.

Next.js 초보자 따라하기 보러가기!!
감사 인사는 구독과 좋아요

반응형