본문으둜 κ±΄λ„ˆλ›°κΈ°

🎨 λ””μžμΈ μ‹œμŠ€ν…œ 운영

λ””μžμΈμ΄ ν™•μ •λ˜μ§€ μ•Šμ€ μƒνƒœμ—μ„œ λ””μžμΈ μ‹œμŠ€ν…œμ„ μ μ§„μ μœΌλ‘œ κ΅¬μΆ•ν•˜λŠ” μ „λž΅μž…λ‹ˆλ‹€.

κΈ°λ³Έ λ°©μΉ¨ β€” ν•˜μ΄λΈŒλ¦¬λ“œ 접근​

μ²˜μŒλΆ€ν„° packages/둜 λΆ„λ¦¬ν•˜μ§€ μ•Šκ³ , shared λ ˆμ΄μ–΄ μ•ˆμ—μ„œ μ‹œμž‘ν•΄μ„œ μ•ˆμ •ν™”λ˜λ©΄ νŒ¨ν‚€μ§€λ‘œ μŠΉκ²©ν•©λ‹ˆλ‹€.

초기 β†’ μ•ˆμ •ν™” 이후
shared/ui/ β†’ packages/ui/
shared/design-tokens/ β†’ packages/design-tokens/

ν•œ λ²ˆμ— μ „λ©΄ κ΅μ²΄ν•˜μ§€ μ•Šκ³  점진 ꡐ체 μ „λž΅μ„ μœ μ§€ν•΄μš”.

πŸ“¦ 단계별 λͺ©ν‘œβ€‹

λ‹¨κ³„μž‘μ—…μƒνƒœ
1️⃣UI 인벀토리 μˆ˜μ§‘ (화면별 반볡 UI λͺ©λ‘)βœ… μ™„λ£Œ
2οΈβƒ£λ””μžμΈ 토큰 체계 μ΄ˆμ•ˆ μ •μ˜βœ… μ™„λ£Œ
3οΈβƒ£μ»΄ν¬λ„ŒνŠΈ μš°μ„ μˆœμœ„ λΆ„λ₯˜βœ… μ™„λ£Œ
4️⃣FSD μœ μ§€ 기반 ꡬ쑰 μ„€κ³„βœ… μ™„λ£Œ
5️⃣Storybook 운영, 배포/λ²„μ €λ‹πŸ”œ λ””μžμΈ ν™•μ • ν›„

πŸ—‚οΈ μ»΄ν¬λ„ŒνŠΈ μš°μ„ μˆœμœ„β€‹

v1 β€” 핡심 곡톡 μ»΄ν¬λ„ŒνŠΈ

Button, Input, Select, Textarea, Badge, Card, Modal

v2 β€” ν™•μž₯ μ»΄ν¬λ„ŒνŠΈ

Tabs, Toast, Dropdown, DatePicker λ“±

🏷️ DS 주석 κ·œμΉ™β€‹

λ””μžμΈ μ‹œμŠ€ν…œ κ΄€λ ¨ 파일 μˆ˜μ • μ‹œ μ•„λž˜ ν˜•μ‹μœΌλ‘œ 주석을 λ‚¨κΉλ‹ˆλ‹€.

// [DS] domain:home component:Button ui:button
// [DS] domain:mypage component:ProfileModal ui:modal
// [DS] domain:saju-input component:InputField ui:form

μ„Έ κ°€μ§€λ₯Ό 항상 ν¬ν•¨ν•΄μš”:

  • domain β€” μ–΄λŠ ν™”λ©΄μ—μ„œ μ“°μ΄λŠ”μ§€
  • component β€” μ»΄ν¬λ„ŒνŠΈ 이름
  • ui β€” UI νƒ€μž… (button / modal / form / card)

이 주석이 있으면 λ‚˜μ€‘μ— 인벀토리 μž¬μˆ˜μ§‘μ΄λ‚˜ νŒ¨ν‚€μ§€ 승격 μž‘μ—…μ΄ 훨씬 μ‰¬μ›Œμ§‘λ‹ˆλ‹€.

πŸ“ ν˜„μž¬ ꡬ쑰​

shared/
β”œβ”€β”€ design-tokens/ ← CSS λ³€μˆ˜ μ°Έμ‘°
└── ui/
β”œβ”€β”€ button/
β”œβ”€β”€ input/
β”œβ”€β”€ card/
β”œβ”€β”€ badge/
β”œβ”€β”€ select/
└── ...

packages/
β”œβ”€β”€ design-tokens/ ← 토큰 νŒ¨ν‚€μ§€ (승격 μ™„λ£Œ)
└── ui/ ← UI primitive νŒ¨ν‚€μ§€