라우팅
React Router / Next.js
Next.js
새 프로젝트라면 페이지 전환뿐 아니라 검색에 유리한 구조와 사이트를 공개하는 구조까지 갖춰져 있습니다. 이 사이트도 Next.js로 만들었습니다
결과 비교
같은 것을 각 라이브러리로 만들었습니다. 직접 만져 보세요.
React Router
코드 비교
코드를 고치면 오른쪽 미리보기가 바로 바뀝니다.
Next.js로 같은 것을 만들면
app/page.tsx → /
export default function Page() {
return <h2>홈</h2>
}app/items/page.tsx → /items
import Link from "next/link"
import { items } from "@/data/items"
export default function Page() {
return (
<div>
<h2>상품 목록</h2>
<ul>
{items.map((item) => (
<li key={item.slug}>
<Link href={"/items/" + item.slug}>{item.name}</Link>
</li>
))}
</ul>
</div>
)
}app/items/[slug]/page.tsx → /items/apple 등
import Link from "next/link"
import { notFound } from "next/navigation"
import { items } from "@/data/items"
export default async function Page({
params,
}: {
params: Promise<{ slug: string }>
}) {
// URL의 [slug] 부분(예: apple)을 꺼냄
const { slug } = await params
const item = items.find((i) => i.slug === slug)
if (!item) {
notFound()
}
return (
<div>
<h2>{item.name}</h2>
<p>₩{item.price.toLocaleString()}</p>
<Link href="/items">← 목록으로 돌아가기</Link>
</div>
)
}비교
2026년 10월 기준
React Router
공식 사이트 ↗특징
React 앱에 페이지 전환을 더하는 라이브러리입니다. "이 URL이면 이 화면"이라는 대응표를 코드로 씁니다. 페이지 내용은 브라우저에서 만들어집니다
이럴 때 좋아요
기존 React 앱에 페이지를 추가할 때. 로그인 후에 쓰는 관리 화면처럼 검색될 필요가 없는 앱
특징
React로 웹사이트를 만드는 프레임워크입니다. 폴더와 파일 구조가 그대로 URL이 됩니다(app/basics/page.tsx → /basics). 페이지를 서버에서 만들어 보냅니다
이럴 때 좋아요
검색되기를 바라는 사이트를 새로 만들 때: 블로그, 온라인 쇼핑몰, 서비스 소개 페이지 등