Skip to Content
Nextra 4.0 is released πŸŽ‰

πŸ“– Docs App

πŸ“ μ†Œκ°œ

apps/docs μ›Œν¬μŠ€νŽ˜μ΄μŠ€λŠ” λͺ¨λ…Έλ ˆν¬ λ‚΄μ—μ„œ λ¬Έμ„œν™”(Docs) κΈ°λŠ₯을 λ‹΄λ‹Ήν•˜λŠ” Next.js 기반의 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μž…λ‹ˆλ‹€. 이 앱은 Nextra와 Nextra Docs ν…Œλ§ˆλ₯Ό ν™œμš©ν•˜μ—¬, λΉ λ₯΄κ³  효율적인 λ¬Έμ„œ μ‚¬μ΄νŠΈλ₯Ό ꡬ좕할 수 μžˆλ„λ‘ λ•μŠ΅λ‹ˆλ‹€. λ˜ν•œ ν”„λ‘œμ νŠΈμ˜ λ‹€μ–‘ν•œ νŒ¨ν‚€μ§€, λͺ¨λ“ˆ, μ»΄ν¬λ„ŒνŠΈμ— λŒ€ν•œ λ¬Έμ„œμ™€ κ°€μ΄λ“œ, 예제 등을 μ œκ³΅ν•˜μ—¬ κ°œλ°œμžμ™€ μ‚¬μš©μž λͺ¨λ‘κ°€ μ‰½κ²Œ 정보λ₯Ό 얻을 수 μžˆλ„λ‘ μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

πŸš€ Nextra 기반 λ¬Έμ„œ μ‹œμŠ€ν…œ

이 앱은 Nextra와 Nextra Docs ν…Œλ§ˆλ₯Ό 기반으둜 κ΅¬μΆ•λ˜μ—ˆμŠ΅λ‹ˆλ‹€. NextraλŠ” Next.js μœ„μ—μ„œ λ™μž‘ν•˜λŠ” κ°•λ ₯ν•œ λ¬Έμ„œ μ‚¬μ΄νŠΈ ν”„λ ˆμž„μ›Œν¬λ‘œ, λ‹€μŒκ³Ό 같은 μž₯점이 μžˆμŠ΅λ‹ˆλ‹€:

Next.js 의 이점

  • Next.js 기반: μ΅œμ‹  Next.js ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν•˜μ—¬ λΉ λ₯΄κ³  효율적인 정적/동적 λ¬Έμ„œ νŽ˜μ΄μ§€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
  • MDX 지원: Markdownκ³Ό JSXλ₯Ό κ²°ν•©ν•œ MDX 포맷을 μ§€μ›ν•˜μ—¬, λ¬Έμ„œ λ‚΄μ—μ„œ λ¦¬μ•‘νŠΈ μ»΄ν¬λ„ŒνŠΈ ν™œμš©μ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.
  • λͺ¨λ…Έλ ˆν¬ 톡합: Turborepo ν™˜κ²½μ—μ„œ λ‹€λ₯Έ μ•±/νŒ¨ν‚€μ§€μ™€ μ—°λ™λ˜μ–΄, 곡톡 μ»΄ν¬λ„ŒνŠΈ 및 μœ ν‹Έλ¦¬ν‹°λ₯Ό μ‰½κ²Œ μ°Έμ‘°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ»€μŠ€ν…€ μ»΄ν¬λ„ŒνŠΈ: mdx-components.tsλ₯Ό 톡해 λ¬Έμ„œ λ‚΄μ—μ„œ μ‚¬μš©ν•  μ»€μŠ€ν…€ μ»΄ν¬λ„ŒνŠΈλ₯Ό μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Nextra 의 이점

  • λΉ λ₯Έ λ¬Έμ„œν™”: 폴더 ꡬ쑰와 MDX 파일만으둜 μ†μ‰½κ²Œ λ¬Έμ„œ μ‚¬μ΄νŠΈλ₯Ό ꡬ성할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • ν…Œλ§ˆ 지원: nextra-theme-docsλ₯Ό 톡해 μ„Έλ ¨λœ λ¬Έμ„œ ν…Œλ§ˆμ™€ λ‹€μ–‘ν•œ μ»€μŠ€ν…€ μ˜΅μ…˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€.
  • λ‚΄μž₯ 검색: Pagefind와 μ—°λ™ν•˜μ—¬, 정적 λΉŒλ“œ 후에도 λΉ λ₯Έ 전체 λ¬Έμ„œ 검색이 κ°€λŠ₯ν•©λ‹ˆλ‹€.
  • 버전 관리 및 λ‹€κ΅­μ–΄ 지원: Nextra의 섀정을 톡해 λ¬Έμ„œ 버전 관리와 λ‹€κ΅­μ–΄ 지원이 μš©μ΄ν•©λ‹ˆλ‹€.

βš™οΈ μ£Όμš” μ„€μ • 및 μ»€μŠ€ν„°λ§ˆμ΄μ§•

  • next.config.jsμ—μ„œ Nextra ν…Œλ§ˆ 및 μ˜΅μ…˜μ„ μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • mdx-components.ts νŒŒμΌμ„ 톡해 MDXμ—μ„œ μ‚¬μš©ν•  μ»€μŠ€ν…€ μ»΄ν¬λ„ŒνŠΈλ₯Ό μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • content/ 폴더 내에 MDX νŒŒμΌμ„ μΆ”κ°€ν•˜λ©΄ μžλ™μœΌλ‘œ λ¬Έμ„œ νŽ˜μ΄μ§€κ°€ μƒμ„±λ©λ‹ˆλ‹€.

πŸ“‚ 디렉토리 ꡬ쑰

  • app/ : Next.js의 라우트 및 νŽ˜μ΄μ§€ μ»΄ν¬λ„ŒνŠΈ
  • components/ : λ¬Έμ„œμ—μ„œ μ‚¬μš©ν•˜λŠ” UI μ»΄ν¬λ„ŒνŠΈ
  • containers/ : λ¬Έμ„œ λ ˆμ΄μ•„μ›ƒ 및 μ»¨ν…Œμ΄λ„ˆ μ»΄ν¬λ„ŒνŠΈ
  • content/ : μ‹€μ œ λ¬Έμ„œ(MDX) 파일이 μœ„μΉ˜
    • ko/ : ν•œκ΅­μ–΄ λ¬Έμ„œ
    • en/ : μ˜μ–΄ λ¬Έμ„œ
    • ja/ : 일본어 λ¬Έμ„œ
  • public/ : 정적 파일(이미지, 폰트 λ“±)
  • tests/ : ν…ŒμŠ€νŠΈ μ½”λ“œ

πŸ’‘ μ‚¬μš© μ˜ˆμ‹œ

λ¬Έμ„œ μΆ”κ°€ μ‹œ, content/ 폴더 내에 각 언어별 폴더(예: ko/, en/, ja/)에 MDX νŒŒμΌμ„ μƒμ„±ν•˜λ©΄ λ©λ‹ˆλ‹€.
MDX νŒŒμΌμ„ μƒμ„±ν•˜κ³ , ν•„μš”μ— 따라 μ•„λž˜ μ˜ˆμ‹œμ™€ 같이 μ»€μŠ€ν…€ μ»΄ν¬λ„ŒνŠΈλ₯Ό μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€:

λ¬Έμ„œ μž‘μ„±μ— λŒ€ν•œ 보닀 μžμ„Έν•œ κ°€μ΄λ“œλŠ” λ¬Έμ„œν™” > λ¬Έμ„œ μž‘μ„± 방법 λ¬Έμ„œλ₯Ό μ°Έκ³ ν•˜μ„Έμš”.

content/ko/example.mdx
import CustomComponent from "../../components/CustomComponent"; --- title: μ˜ˆμ‹œ λ¬Έμ„œ description: λ¬Έμ„œ μž‘μ„± μ˜ˆμ‹œμž…λ‹ˆλ‹€. --- # μ˜ˆμ‹œ λ¬Έμ„œ <CustomComponent />

πŸ“¦ μ˜μ‘΄μ„± μ„€μΉ˜

pnpm install --filter apps/docs

πŸ› οΈ 개발 및 μ‹€ν–‰

λ¬Έμ„œ μ‚¬μ΄νŠΈλ₯Ό 개발 λͺ¨λ“œλ‘œ μ‹€ν–‰ν•˜λ €λ©΄ λ‹€μŒ λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€:

pnpm run dev --filter apps/docs

πŸ—οΈ λΉŒλ“œ

λ¬Έμ„œ μ‚¬μ΄νŠΈλŠ” 정적 μ‚¬μ΄νŠΈλ‘œ λΉŒλ“œλ˜μ–΄ λ°°ν¬λ©λ‹ˆλ‹€. λ‹€μŒ λͺ…λ Ήμ–΄λ‘œ λΉŒλ“œν•  수 μžˆμŠ΅λ‹ˆλ‹€:

pnpm run build --filter apps/docs

🚒 배포

λ¬Έμ„œ μ‚¬μ΄νŠΈλŠ” 정적 파일둜 λΉŒλ“œλ˜λ―€λ‘œ, λΉŒλ“œ ν›„ μƒμ„±λœ νŒŒμΌμ„ μ›Ή μ„œλ²„μ— λ°°ν¬ν•˜λ©΄ λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, Vercel, Netlify, GitHub Pages λ“± λ‹€μ–‘ν•œ ν˜ΈμŠ€νŒ… μ„œλΉ„μŠ€μ— 배포할 수 μžˆμŠ΅λ‹ˆλ‹€.

이 ν”„λ‘œμ νŠΈμ—μ„œλŠ” docs 앱을 GitHub Pages에 λ°°ν¬ν•˜λ„λ‘ GitHub Actions μ›Œν¬ν”Œλ‘œμš°κ°€ μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ λ¬Έμ„œν™” > λ¬Έμ„œ νŽ˜μ΄μ§€ 배포 λ¬Έμ„œλ₯Ό μ°Έκ³ ν•˜μ„Έμš”.

πŸ”— μ°Έκ³ 


Last updated on