pnpm scaffold λͺ
λ Ήμ΄λ Entity μ μλ₯Ό κΈ°λ°μΌλ‘ 보μΌλ¬νλ μ΄νΈ μ½λλ₯Ό μλ μμ±ν©λλ€. Model ν΄λμ€μ ν
μ€νΈ νμΌμ λͺ μ΄ λ§μ μμ±νμ¬ κ°λ° μκ°μ ν¬κ² λ¨μΆν©λλ€.
κΈ°λ³Έ κ°λ
Scaffoldλ Entityλ₯Ό μ½λλ‘ λ³ννλ μλν λꡬμ λλ€:- Entity κΈ°λ°: Entity μ μμμ νμ κ³Ό ꡬ쑰 νμ
- νμ μμ : TypeScript νμ μ΄ μλμΌλ‘ μμ±λ¨
- μΌκ΄μ±: λͺ¨λ μ½λκ° κ°μ ν¨ν΄μ λ°λ¦
- μμ κ°λ₯: μμ± ν μμ λ‘κ² μ»€μ€ν°λ§μ΄μ§
λͺ λ Ήμ΄
model - Model ν΄λμ€ μμ±
Entityλ₯Ό μν Model ν΄λμ€λ₯Ό μμ±ν©λλ€.src/application/user/user.model.ts
μ€μ μμ±λ¬Όμλ
findById/findOne/findMany/save/delμ λ³Έλ¬Έμ΄ λͺ¨λ μ±μμ Έ μμ΅λλ€. μ
μμ λ μ§λ©΄μ λ³Έλ¬Έμ μλ΅ν κ²μ
λλ€. PK νμ
μ΄ λ¬Έμμ΄μΈ EntityλΌλ©΄ id νμ
μ stringμΌλ‘
μμ±λ©λλ€.model_test - ν μ€νΈ νμΌ μμ±
Modelμ μν ν μ€νΈ νμΌμ μμ±ν©λλ€.src/application/user/user.model.test.ts
View μ€μΊν΄λ©
Admin νλ©΄μ λͺ©λ‘/νΌ μ»΄ν¬λνΈλ CLIλ‘ μμ±ν μ μμ΅λλ€.λμΌν κΈ°λ₯μ Sonamu UIμ Scaffolding νμμλ μ¬μ©ν μ μμ΅λλ€.
μμ±λ μ½λ ꡬ쑰
Model ν΄λμ€
μμ±λ Model ν΄λμ€λ λ€μ ꡬ쑰λ₯Ό κ°μ§λλ€:- β TypeScript νμ
- β Subset/Loader 쿼리 μ°κ²°
- β BaseModelClass μμ
- β
κΈ°λ³Έ CRUD λ©μλ(
findById/findOne/findMany/save/del)
- λΉμ¦λμ€ λ‘μ§ λ©μλ
- 볡μ‘ν 쿼리
- λ°μ΄ν° κ²μ¦
- κ΄κ³ λ‘λ©
ν μ€νΈ νμΌ
μμ±λ ν μ€νΈ νμΌμ κΈ°λ³Έ ν μ€νΈλ₯Ό ν¬ν¨ν©λλ€:- λΉμ¦λμ€ λ‘μ§ ν μ€νΈ μΆκ°
- Edge case ν μ€νΈ
- μ±λ₯ ν μ€νΈ
- ν΅ν© ν μ€νΈ
κ°λ° μν¬νλ‘μ°
1. Entity μ μ
src/application/product/product.entity.json
2. λ§μ΄κ·Έλ μ΄μ
3. Model μμ±
4. λΉμ¦λμ€ λ‘μ§ μΆκ°
src/application/product/product.model.ts
5. ν μ€νΈ μμ±
6. ν μ€νΈ μμ±
src/application/product/product.model.test.ts
7. API μΆκ°
src/application/product/product.model.ts
컀μ€ν°λ§μ΄μ§
Model λ©μλ μΆκ°
μμ±λ Modelμ λΉμ¦λμ€ λ‘μ§μ μΆκ°ν©λλ€:ν μ€νΈ νμ₯
λ λ§μ ν μ€νΈ μΌμ΄μ€λ₯Ό μΆκ°ν©λλ€:μ¬λ¬ Entity μΌκ΄ μμ±
μ€ν¬λ¦½νΈ νμ©
ν μ€νΈ μΌκ΄ μμ±
μ€μ ν
1. Entity λ¨Όμ μμ±νκΈ°
2. μ μ§μ νμ₯
3. 컨벀μ μ€μ
4. Git κ΄λ¦¬
λ¬Έμ ν΄κ²°
Model μ¬μμ±
λ¬Έμ : Modelμ λ€μ μμ±νκ³ μΆμ ν΄κ²°:Entity λ³κ²½ ν λκΈ°ν
λ¬Έμ : Entity λ³κ²½ ν Model μ λ°μ΄νΈ ν΄κ²°:λ€μ λ¨κ³
Model
Model ν΄λμ€ μμΈν μμ보기
Testing
ν
μ€νΈ μμ±νκΈ°