0Pricing
React Academy · 강의

동적 경로와 경로 그룹

[slug] 동적 세그먼트, (folder)를 사용한 경로 그룹, 병렬 경로를 만듭니다.

동적 경로와 경로 그룹은(는) CoddyKit의 무료 React Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 React Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

동적 세그먼트

폴더 이름을 대괄호로 감싸면 동적 세그먼트가 만들어집니다. 해당 값은 페이지에 전달되는 params에서 사용할 수 있습니다.

// app/products/[id]/page.tsx
export default function ProductPage({ params }: { params: { id: string } }) {
  return <h1>Product {params.id}</h1>;
}
// → /products/123 → params.id = '123'

타입이 지정된 매개변수

URL에서 매개변수는 항상 문자열입니다. 숫자 ID가 필요하면 명시적으로 구문 분석하십시오.

export default async function PostPage({ params }: { params: { slug: string } }) {
  const post = await getPostBySlug(params.slug);
  if (!post) notFound();
  return <article>{post.content}</article>;
}

포괄 세그먼트

[...slug]를 사용하면 경로 세그먼트 수에 관계없이 일치시킬 수 있습니다. 해당 값은 문자열 배열입니다.

// app/docs/[...path]/page.tsx
export default function DocsPage({ params }: { params: { path: string[] } }) {
  // /docs/react/hooks → params.path = ['react', 'hooks']
  return <DocViewer path={params.path} />;
}

선택적 포괄 세그먼트

[[...slug]]는 루트 세그먼트에도 일치합니다. 선택적 경로 접두사에 유용합니다.

// app/[[...lang]]/page.tsx
// Matches /, /en, /en/about, /fr/products/123
export default function Page({ params }: { params: { lang?: string[] } }) {
  const lang = params.lang?.[0] ?? 'en';
  return <div lang={lang}>...</div>;
}

generateStaticParams

generateStaticParams()를 내보내면 빌드 시 동적 경로를 미리 렌더링하여 각 매개변수 조합에 대한 정적 HTML을 생성할 수 있습니다.

export async function generateStaticParams() {
  const posts = await getPosts();
  return posts.map(p => ({ slug: p.slug }));
}
// → builds /blog/hello-world, /blog/react-tips etc. statically

경로 그룹 — (folder)

폴더 이름을 괄호로 감싸면 경로 그룹이 만들어집니다. URL 세그먼트를 추가하지 않고 파일을 구성할 수 있습니다.

// File structure:
// app/(marketing)/about/page.tsx → /about
// app/(marketing)/blog/page.tsx  → /blog
// app/(app)/dashboard/page.tsx   → /dashboard
// (marketing) and (app) don't appear in URLs

공유 레이아웃이 있는 경로 그룹

각 경로 그룹에는 자체 layout.tsx를 둘 수 있으므로 URL을 중첩하지 않고도 섹션마다 다른 레이아웃을 적용할 수 있습니다.

// app/(marketing)/layout.tsx — marketing shell
// app/(app)/layout.tsx — authenticated app shell
// Both groups share app/layout.tsx as the root

병렬 경로 — @slot

폴더 앞에 @를 붙이면 슬롯이 만들어집니다. 슬롯은 부모 레이아웃에서 동시에 렌더링되므로 모달, 분할 화면 또는 탭에 유용합니다.

// app/@modal/login/page.tsx
// app/layout.tsx
export default function RootLayout({ children, modal }) {
  return (
    <div>
      {children}
      {modal} {/* renders @modal/login/page.tsx side by side */}
    </div>
  );
}

가로채는 경로 — (..)

(..) 표기법을 사용하면 경로를 가로채 인라인으로 렌더링할 수 있습니다. 예를 들어 새 페이지로 이동하는 대신 모달에서 사진을 열 수 있습니다.

// Soft navigation shows modal:
// app/@modal/(..)/photos/[id]/page.tsx
// Hard navigation shows full page:
// app/photos/[id]/page.tsx

동적 경로 메타데이터

동적 경로에서 비동기 generateMetadata 함수를 내보내면 경로 매개변수를 바탕으로 페이지별 검색 엔진 최적화 태그를 설정할 수 있습니다.

export async function generateMetadata({ params }: { params: { id: string } }) {
  const product = await getProduct(params.id);
  return { title: product.name, description: product.description };
}

빠른 확인

Next.js App Router에서 폴더 이름을 괄호로 감싸면 어떻게 됩니까?

복습

[id]는 동적 세그먼트를 만들고, [...slug]는 모든 하위 경로를 포괄하며, [[...slug]]는 이를 선택 사항으로 만듭니다. (name)을 사용한 경로 그룹은 URL에 영향을 주지 않고 코드를 구성하며 그룹별 레이아웃을 사용할 수 있게 합니다. 빌드 시 미리 렌더링하려면 generateStaticParams를 사용하십시오.

자주 묻는 질문

“동적 경로와 경로 그룹” 강의는 무료인가요?

네 — “동적 경로와 경로 그룹” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 React Academy 강의 전체를 잠금 해제할 수 있습니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“동적 경로와 경로 그룹”에서 뭘 배우나요?

[slug] 동적 세그먼트, (folder)를 사용한 경로 그룹, 병렬 경로를 만듭니다. 브라우저에서 직접 실행하는 실습 코드로 React Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

React Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 React Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“동적 경로와 경로 그룹” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 React Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 React Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. App Router 파일 규칙
  2. Next.js의 서버 컴포넌트와 클라이언트 컴포넌트
  3. 동적 경로와 경로 그룹
  4. 메타데이터 API와 App Router의 SEO
← React Academy(으)로 돌아가기