Enumμ΄λ?
Enumμ μ νλ κ°μ μ§ν©μ μ μνμ¬ λ€μμ μ 곡ν©λλ€:νμ μμ μ±
μ μλμ§ μμ κ° μ
λ ₯ λ°©μ§TypeScriptμμ Union νμ
μΌλ‘ μλ λ³ν
UI μλ μμ±
μ ν λͺ©λ‘ μλ ꡬμ±Select, ButtonSet μ»΄ν¬λνΈμ μ¦μ μ¬μ©
λ μ΄λΈ κ΄λ¦¬
ν€μ νμλͺ
λΆλ¦¬λ€κ΅μ΄ μ§μ μ©μ΄
μ μ§λ³΄μμ±
μ€μ μ§μ€μ κ΄λ¦¬κ° λ³κ²½ μ ν κ³³λ§ μμ
Enum μ μνκΈ°
entity.jsonμμ μ μ
Entityμenums μΉμ
μ ν€-λ μ΄λΈ μμΌλ‘ μ μν©λλ€.
user.entity.json
- Enum ID: PascalCase (μ:
UserRole,PostStatus) - Key: μλ¬Έμ, μ«μ, μΈλμ€μ½μ΄ (μ:
admin,draft_saved) - Label: νμμ© ν μ€νΈ, νκΈ κ°λ₯ (μ: βκ΄λ¦¬μβ, βμμμ μ₯β)
Sonamu UIμμ μ μ
1
Entity νΈμ§ νμ΄μ§λ‘ μ΄λ
Sonamu UIμμ Entityλ₯Ό μ νν©λλ€.
2
Enums μΉμ μΌλ‘ μ€ν¬λ‘€
Props, Indexes, Subsets μλμ Enums μΉμ
μ΄ μμ΅λλ€.
3
Add Enum ν΄λ¦
μ Enumμ μΆκ°ν©λλ€.Enum ID μ
λ ₯:
- PascalCaseλ‘ μ λ ₯
- Entityμ μ°κ΄μν€λ €λ©΄
{Entity}ν¨ν΄ μ¬μ©- μ:
$ModelRoleβUserRole(μλ λ³ν)
- μ:
4
Enum κ° μΆκ°
κ° Enumμ λ³λ νμΌλ‘ νμλλ©°, βAdd Rowβ λ²νΌμΌλ‘ ν€-λ μ΄λΈ μμ μΆκ°ν©λλ€.
- Key: μλ¬Έ μλ¬Έμ, μ«μ, μΈλμ€μ½μ΄
- Label: νκΈ λλ νμλͺ
5
μ μ₯
Entityλ₯Ό μ μ₯νλ©΄ Enumμ΄ ν¨κ» μ μ₯λ©λλ€.
πΈ νμ: Sonamu UIμ Enums μΉμ - μ¬λ¬ Enumμ΄ νμΌλ‘ ꡬλΆλμ΄ νμ
μλ μμ±λλ μ½λ
Enumμ μ μνλ©΄ Sonamuκ° μλμΌλ‘ λ€μμ μμ±ν©λλ€:1. Zod μ€ν€λ§
sonamu.generated.ts
2. TypeScript νμ
user.types.ts
3. λ μ΄λΈ ν¬νΌ ν¨μ
sonamu.generated.ts
Enum μ¬μ©νκΈ°
Propsμμ μ¬μ©
- μ»¬λΌ νμ
:
text - μ μ₯ κ°: Key κ° (μ:
"admin")
APIμμ μ¬μ©
λ μ΄λΈ νμ
μμ£Ό μ¬μ©λλ Enum ν¨ν΄
1. OrderBy Enum
μ λ ¬ μ΅μ μ μ μν©λλ€.2. SearchField Enum
κ²μ κ°λ₯ν νλλ₯Ό μ μν©λλ€.3. Status Enum
μνλ₯Ό μ μν©λλ€.4. Type/Category Enum
λΆλ₯λ₯Ό μ μν©λλ€.Enum λ°°μ΄ νμ
μ¬λ¬ Enum κ°μ λ°°μ΄λ‘ μ μ₯ν μ μμ΅λλ€.- μ»¬λΌ νμ
:
text[] - μ μ₯ κ°:
["read", "write"]
νλ‘ νΈμλμμ Enum μ¬μ©
Select μ»΄ν¬λνΈ
ButtonSet μ»΄ν¬λνΈ
Enum κ²μ¦
Zodλ₯Ό μ¬μ©νμ¬ μλμΌλ‘ Enum κ°μ κ²μ¦ν©λλ€.Enum λ€μ΄λ° κ·μΉ
κΆμ₯ ν¨ν΄
$Model ν¨ν΄
Entity μ΄λ¦μ λμ μΌλ‘ ν¬ν¨νλ €λ©΄$Modelμ μ¬μ©ν©λλ€:
UserEntity βUserRole,UserStatusPostEntity βPostRole,PostStatus
μ£Όμμ¬ν
Enum vs λ³λ ν μ΄λΈ
Enum μ¬μ© μμ:
- μ¬μ©μ μν (admin, user, guest)
- κ²μκΈ μν (draft, published, deleted)
- μλ¦Ό νμ (email, sms, push)
- μ§μ λͺ©λ‘ (μμΈ, λΆμ°, β¦)
- μν μΉ΄ν κ³ λ¦¬ (κ³μΈ΅ ꡬ쑰)
- κ΅κ° μ½λ (μΆκ° μ 보 λ§μ)
λ€μ λ¨κ³
Field Types
λ€λ₯Έ νλ νμ
μμ보기
Validation
Zodλ‘ λ°μ΄ν° κ²μ¦νκΈ°
Frontend Components
μμ±λ μ»΄ν¬λνΈ μ¬μ©νκΈ°
API Development
Enumμ μ¬μ©ν API κ°λ°