πΊοΈ Next.js Route Map
Next.js νλ‘μ νΈμ λΌμ°νΈ ꡬ쑰λ₯Ό μΈν°λν°λΈν μκ°μ λ€μ΄μ΄κ·Έλ¨μΌλ‘ λ³ννλ CLI λꡬ

β¨ νΉμ§
- π κ°λ¨ν μ¬μ©λ²: ν μ€ λͺ
λ Ήμ΄λ‘ λΌμ°νΈ λ§΅ μμ±
- π¨ μΈν°λν°λΈ μκ°ν: Cytoscape.js κΈ°λ°μ λμ κ·Έλν
- π± λͺ¨λ λΌμ°νΈ νμ
μ§μ: νμ΄μ§, API, λμ λΌμ°νΈ λͺ¨λ κ°μ§
- π λ€λΉκ²μ΄μ
μΆμ :
router.push()
, Link
μ»΄ν¬λνΈ μ°κ²° κ΄κ³ λΆμ
- π λ¨μΌ HTML νμΌ: μλ² μμ΄ λΈλΌμ°μ μμ λ°λ‘ μ€ν
- π― μ λ‘ μ€μ : λ³λ μ€μ μμ΄ μ¦μ μ¬μ© κ°λ₯
π λΉ λ₯Έ μμ
npxλ‘ μ¦μ μ¬μ© (κΆμ₯)
npx next-route-map map --path ./your-nextjs-project
κΈλ‘λ² μ€μΉ
npm install -g next-route-map
next-route-map map --path ./your-nextjs-project
π μ¬μ©λ²
κΈ°λ³Έ μ¬μ©λ²
npx next-route-map map
npx next-route-map map --path ./my-next-app
npx next-route-map --help
λͺ
λ Ήμ΄ μ΅μ
next-route-map map [options]
Options:
-p, --path <path> Next.js νλ‘μ νΈ κ²½λ‘ (κΈ°λ³Έκ°: ".")
-h, --help λμλ§ νμ
π¨ μμ±λλ μκ°ν
λꡬλ₯Ό μ€ννλ©΄ route-visualizer.html
νμΌμ΄ μμ±λλ©°, λ€μκ³Ό κ°μ κΈ°λ₯μ μ 곡ν©λλ€:
π λ
Έλ νμ
λ³ μμ ꡬλΆ
- π’ μΌλ° νμ΄μ§: μ΄λ‘μ (μ:
/about
, /contact
)
- π΅ λμ λΌμ°νΈ: νλμ (μ:
/user/[id]
, /blog/[...slug]
)
- π API λΌμ°νΈ: μ£Όν©μ (μ:
/api/users
, /api/auth
)
π μ°κ²° κ΄κ³ νμ
- νλμ νμ΄ν:
router.push()
λ€λΉκ²μ΄μ
- λΉ¨κ°μ νμ΄ν:
router.replace()
λ€λΉκ²μ΄μ
- μ΄λ‘μ νμ΄ν:
<Link>
μ»΄ν¬λνΈ μ°κ²°
π±οΈ μΈν°λν°λΈ κΈ°λ₯
- μ€/ν¬: λ§μ°μ€ ν κ³Ό λλκ·Έλ‘ νλ/μΆμ λ° μ΄λ
- μ£μ§ ν΄λ¦: μ°κ²°μ μ ν΄λ¦νλ©΄ μμ€ μ½λ μ 보 νμ
- μλ λ μ΄μμ: κ³μΈ΅μ κ΅¬μ‘°λ‘ μλ μ λ ¬
π μ§μνλ νλ‘μ νΈ κ΅¬μ‘°
Pages Router (Next.js 12 μ΄ν)
pages/
βββ index.js β /
βββ about.js β /about
βββ user/
β βββ index.js β /user
β βββ [id].js β /user/[id]
βββ api/
βββ users.js β /api/users
App Router (Next.js 13+)
app/
βββ page.js β /
βββ about/
β βββ page.js β /about
βββ user/
β βββ page.js β /user
β βββ [id]/
β βββ page.js β /user/[id]
βββ api/
βββ users/
βββ route.js β /api/users
π κ°μ§λλ λ€λΉκ²μ΄μ
ν¨ν΄
λꡬλ λ€μκ³Ό κ°μ μ½λ ν¨ν΄μ μλμΌλ‘ κ°μ§ν©λλ€:
import { useRouter } from "next/router";
const router = useRouter();
router.push("/dashboard");
import Link from "next/link";
<Link href="/profile">νλ‘ν</Link>;
router.replace("/login");
βοΈ μꡬμ¬ν
- Node.js: 14.0.0 μ΄μ
- Next.js νλ‘μ νΈ: Pages Router λλ App Router
- λΈλΌμ°μ : λͺ¨λ λΈλΌμ°μ (Chrome, Firefox, Safari, Edge)
π μμ μΆλ ₯
λꡬ μ€ν ν μμ±λλ HTML νμΌμ λΈλΌμ°μ μμ μ΄λ©΄:
πΊοΈ Next.js λΌμ°νΈ λ§΅ μμ± μ€...
π νλ‘μ νΈ κ²½λ‘: ./my-next-app
π¨ ν
λ§: light
π μΆλ ₯ νμ: web
μκ°ν νμΌ μμ±: ./my-next-app/route-visualizer.html
π οΈ κ°λ°μ μ 보
νλ‘μ νΈ κ΅¬μ‘°
next-route-map/
βββ src/
β βββ cli/ # CLI λͺ
λ Ήμ΄ μ²λ¦¬
β βββ parser/ # λΌμ°νΈ νμ± μμ§
β βββ types/ # TypeScript νμ
μ μ
βββ dist/ # λΉλλ νμΌ
βββ example-next/ # ν
μ€νΈμ© Next.js νλ‘μ νΈ
κΈ°μ μ€ν
- TypeScript: νμ
μμ μ±
- Commander.js: CLI νλ μμν¬
- Glob: νμΌ ν¨ν΄ λ§€μΉ
- Cytoscape.js: κ·Έλν μκ°ν
π€ κΈ°μ¬νκΈ°
- μ΄ μ μ₯μλ₯Ό ν¬ν¬ν©λλ€
- κΈ°λ₯ λΈλμΉλ₯Ό μμ±ν©λλ€ (
git checkout -b feature/amazing-feature
)
- λ³κ²½μ¬νμ 컀λ°ν©λλ€ (
git commit -m 'Add amazing feature'
)
- λΈλμΉμ νΈμν©λλ€ (
git push origin feature/amazing-feature
)
- Pull Requestλ₯Ό μμ±ν©λλ€
π λΌμ΄μ μ€
μ΄ νλ‘μ νΈλ MIT λΌμ΄μ μ€ νμ λ°°ν¬λ©λλ€. μμΈν λ΄μ©μ LICENSE νμΌμ μ°Έμ‘°νμΈμ.
π λ²κ·Έ 리ν¬νΈ & κΈ°λ₯ μμ²
λ¬Έμ κ° λ°μνκ±°λ μλ‘μ΄ κΈ°λ₯μ μ μνκ³ μΆμΌμλ©΄ GitHub Issuesμ λ±λ‘ν΄ μ£ΌμΈμ.
π κ΄λ ¨ νλ‘μ νΈ
β μ΄ νλ‘μ νΈκ° μ μ©νλ€λ©΄ GitHubμμ μ€νλ₯Ό λλ¬μ£ΌμΈμ!