νμ νλ¦ κ°μ
μ»΄νμΌ νμ
TypeScriptλ‘ νμ
μ²΄ν¬ κ°λ° μ€ μλ¬ λ°©μ§
λ°νμ
Zodλ‘ μ€μ λ°μ΄ν° κ²μ¦ μλͺ»λ λ°μ΄ν° μ°¨λ¨
λ°μ΄ν°λ² μ΄μ€
PostgreSQL μ μ½μ‘°κ±΄ λ°μ΄ν° λ¬΄κ²°μ± λ³΄μ₯
API κ²½κ³
Request/Response κ²μ¦ μμ ν λ°μ΄ν° κ΅ν
λ μ΄μ΄λ³ νμ μμ μ±
1. Entity β TypeScript
Entity μ μκ° TypeScript νμ μΌλ‘ λ³νλ©λλ€.2. Entity β Zod μ€ν€λ§
Entity μ μκ° Zod μ€ν€λ§λ‘ λ³νλμ΄ λ°νμ κ²μ¦μ μ 곡ν©λλ€.3. Entity β PostgreSQL
Entity μ μκ° PostgreSQL ν μ΄λΈ μ€ν€λ§λ‘ λ³νλ©λλ€.API λ μ΄μ΄ νμ μμ μ±
Model β API Client
Modelμ λ©μλκ° νμ μμ ν API ν΄λΌμ΄μΈνΈλ‘ λ³νλ©λλ€.Request κ²μ¦
API μμ²μ Zod μ€ν€λ§λ‘ μλ κ²μ¦λ©λλ€.Fastify λΌμ°ν°μμ
Response νμ
API μλ΅λ νμ μμ ν©λλ€.TanStack Query νμ μμ μ±
TanStack Query hooksλ μλ²½ν νμ μμ μ±μ μ 곡ν©λλ€.Subset νμ μμ μ±
Subset 쿼리λ μλ²½ν νμ μΆλ‘ μ μ 곡ν©λλ€.μ 체 μ€ν νμ νλ¦ μμ
μ€μ CRUD μμ μμ νμ μ΄ μ΄λ»κ² νλ₯΄λμ§ λ³΄μ¬μ€λλ€.1
1. Entity μ μ
user.entity.json
2
2. Model μμ±
user.model.ts
3
3. νλ‘ νΈμλ μ¬μ©
UserForm.tsx
4
4. API μμ²
5
5. λ°μ΄ν°λ² μ΄μ€ μ μ₯
6
6. μλ΅ λ°ν
νμ λΆμΌμΉ λ°©μ§
Sonamuμ E2E νμ μμ μ±μ νν νμ λΆμΌμΉ λ¬Έμ λ₯Ό λ°©μ§ν©λλ€.API μλ΅ νμ
λΆμΌμΉ
API μλ΅ νμ λΆμΌμΉ
λ¬Έμ : APIκ° μμκ³Ό λ€λ₯Έ νμ
λ°νSonamu ν΄κ²°:
Request νλΌλ―Έν° λΆμΌμΉ
Request νλΌλ―Έν° λΆμΌμΉ
λ¬Έμ : ν΄λΌμ΄μΈνΈκ° μλͺ»λ νλΌλ―Έν° μ μ‘Sonamu ν΄κ²°:
Enum κ° λΆμΌμΉ
Enum κ° λΆμΌμΉ
λ¬Έμ : νλμ½λ©λ λ¬Έμμ΄μ΄ Enumκ³Ό λΆμΌμΉSonamu ν΄κ²°:
Nullable μ²λ¦¬ λλ½
Nullable μ²λ¦¬ λλ½
λ¬Έμ : nullable νλλ₯Ό null μ²΄ν¬ μμ΄ μ¬μ©Sonamu ν΄κ²°: