μž‘μ„±: 2026-03-04 14:39:06μˆ˜μ •: 2026-03-04 14:39:06

Nuxt.js 핡심 κ°œλ…: μžλ™ μž„ν¬νŠΈμ™€ 디렉토리 ꡬ쑰 μ΄ν•΄ν•˜κΈ°

Nuxt.jsλŠ” "섀정보닀 κ΄€μŠ΅(Convention over Configuration)"을 μ€‘μ‹œν•˜λŠ” ν”„λ ˆμž„μ›Œν¬μž…λ‹ˆλ‹€. μ •ν•΄μ§„ 폴더 ꡬ쑰λ₯Ό λ”°λ₯΄λŠ” κ²ƒλ§ŒμœΌλ‘œλ„ μˆ˜λ§Žμ€ λ³΅μž‘ν•œ 섀정을 μžλ™μœΌλ‘œ μ²˜λ¦¬ν•΄ μ€λ‹ˆλ‹€.


1. λ§ˆλ²• 같은 μžλ™ μž„ν¬νŠΈ (Auto-imports)

Nuxt의 κ°€μž₯ 큰 νŠΉμ§• 쀑 ν•˜λ‚˜λŠ” import문을 μƒλž΅ν•  수 μžˆλ‹€λŠ” μ μž…λ‹ˆλ‹€.

  • Components: components/ ν΄λ”μ˜ Vue μ»΄ν¬λ„ŒνŠΈ μžλ™ μž„ν¬νŠΈ.
  • Composables: composables/ ν΄λ”μ˜ ν•¨μˆ˜ μžλ™ μž„ν¬νŠΈ.
  • Vue & Nuxt API: ref, computed, useFetch λ“± ν•„μˆ˜ API μžλ™ μž„ν¬νŠΈ.

2. ν•„μˆ˜ 디렉토리 μ—­ν• 

폴더λͺ…μ—­ν• 
pages/파일 기반 λΌμš°νŒ…μ„ λ‹΄λ‹Ήν•©λ‹ˆλ‹€. index.vueλŠ” / κ²½λ‘œκ°€ λ©λ‹ˆλ‹€.
components/UI μ»΄ν¬λ„ŒνŠΈλ“€μ„ λ‹΄μŠ΅λ‹ˆλ‹€. 폴더 ꡬ쑰에 따라 이름이 κ²°μ •λ©λ‹ˆλ‹€.
composables/μž¬μ‚¬μš© κ°€λŠ₯ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ 둜직(곡톡 ν•¨μˆ˜)을 λ‘‘λ‹ˆλ‹€.
server/API μ—”μ§„(Nitro)이 λ™μž‘ν•˜λŠ” κ³³μž…λ‹ˆλ‹€. λ°±μ—”λ“œ API μ„œλ²„ 역할을 μˆ˜ν–‰ν•©λ‹ˆλ‹€.
assets/λΉŒλ“œ 도ꡬ(Vite)κ°€ μ²˜λ¦¬ν•΄μ•Ό ν•˜λŠ” μŠ€νƒ€μΌ, 이미지 νŒŒμΌλ“€.
public/λ‘œλ΄‡ 파일(robots.txt), νŒŒλΉ„μ½˜ λ“± 정적 νŒŒμΌμ„ 직접 μ„œλΉ™ν•©λ‹ˆλ‹€.

3. App.vue vs Pages

  • app.vue: μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ—”νŠΈλ¦¬ 포인트(μ΅œμƒμœ„)μž…λ‹ˆλ‹€. λͺ¨λ“  νŽ˜μ΄μ§€μ—μ„œ κ³΅ν†΅μœΌλ‘œ 보일 λ ˆμ΄μ•„μ›ƒμ΄λ‚˜ μ„€μ •(Naive UI의 Config Provider λ“±)을 넣기에 μ ν•©ν•©λ‹ˆλ‹€.
  • <NuxtPage />: pages/ ν΄λ”μ˜ λ‚΄μš©μ΄ λ Œλ”λ§λ˜λŠ” μœ„μΉ˜λ₯Ό μ§€μ •ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈμž…λ‹ˆλ‹€.

4. κ²°λ‘ 

NuxtλŠ” μ •ν•΄μ§„ μœ„μΉ˜μ— νŒŒμΌμ„ λ‘λŠ” κ²ƒλ§ŒμœΌλ‘œλ„ κ°œλ°œμžκ°€ λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ—λ§Œ 집쀑할 수 있게 ν•΄μ€λ‹ˆλ‹€. 이 ꡬ쑰λ₯Ό μ΅νžˆλŠ” 것이 Nuxt λ§ˆμŠ€ν„°μ˜ μ²«κ±ΈμŒμž…λ‹ˆλ‹€.