Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 프론트엔드
- 프로그래머스
- 토이 프로젝트
- 타입스크립트
- 자바스크립트
- react router dom
- reduxtoolkit
- 리액트 패턴
- React Query
- 코딩테스트
- tailwind
- 토이프로젝트
- tanstack query
- Supabase
- 그리디
- revalidatepath
- 코어자바스크립트
- 리액트 라우터 돔
- 코테
- JavaScript
- Next.js
- styled component
- TypeScript
- 동적계획법
- react pattern
- React
- Form
- 리액트
- 리덕스
- 스택
Archives
- Today
- Total
느려도 한걸음씩
Next.js - (5) 동적 라우팅 본문
안녕하세요! 이번 포스트에서는 Next.js에서 동적 라우팅(Dynamic Routing)을 설정하는 방법에 대해 알아보겠습니다.
URL에 따라 동적으로 페이지를 보여주는 기능은 블로그, 상품 상세페이지, 유저 프로필 등 다양한 곳에서 자주 사용됩니다.
🗂 기본 Blog 페이지 만들기
먼저 app/ 폴더 안에 blog/ 폴더를 만들고, 그 안에 page.js 파일을 생성해 아래와 같이 작성합니다:
import Link from "next/link";
export default function BlogPage() {
return (
<main>
<h1>The Blog</h1>
<p>
<Link href='/blog/post-1'>Post 1</Link>
</p>
<p>
<Link href='/blog/post-2'>Post 2</Link>
</p>
</main>
);
}
이 페이지는 /blog 경로에서 렌더링되며, 각각의 블로그 게시물로 이동할 수 있는 링크를 제공합니다.
🔀 동적 라우팅 설정하기
이제 /blog/post-1, /blog/post-2 등과 같이 경로에 따라 다른 페이지를 보여주기 위한 동적 라우팅을 설정해보겠습니다.
✅ 폴더 구조 만들기
- blog/ 폴더 안에 [slug]/라는 동적 폴더를 생성합니다.
- 그 안에 page.js 파일을 추가해줍니다.
💡 slug는 아무 이름으로 정해도 되지만, 대괄호([])를 꼭 사용해야 Next.js가 동적으로 인식합니다.
// app/blog/[slug]/page.js
export default function BlogPostPage({ params }) {
return (
<main>
<h1>Blog Post</h1>
<p>{params.slug}</p>
</main>
);
}
위 코드는 /blog/post-1, /blog/post-2 등으로 접속했을 때, URL 경로에 포함된 slug 값을 동적으로 받아와 화면에 출력합니다.
- /blog/post-1 → params.slug === "post-1"
- /blog/post-2 → params.slug === "post-2"
params 객체는 Next.js가 자동으로 제공하는 props 중 하나로, URL의 동적 세그먼트를 포함하고 있습니다.
🧠 정리
- [폴더명] 형태로 디렉토리를 만들면 Next.js가 해당 경로를 동적으로 처리합니다.
- 해당 폴더 안에 page.js를 만들고, params를 통해 동적 값을 받아올 수 있습니다.
- 이 방식은 블로그 글, 상품 상세, 사용자 페이지 등 다양한 동적 콘텐츠에 활용됩니다.
'FE develop > Next.js' 카테고리의 다른 글
Next.js - (7) 비동기 작업을 통해 데이터 가져오기 (0) | 2025.05.02 |
---|---|
Next.js - (6) 리액트 서버 컴포넌트 vs 클라이언트 컴포넌트 (0) | 2025.05.01 |
Next.js - (4) 커스텀 컴포넌트 설정 (0) | 2025.05.01 |
Next.js - (3) 페이지 이동, 레이아웃 파일 (0) | 2025.05.01 |
Next.js - (2) app 폴더와 페이지 라우팅 (0) | 2025.05.01 |