Skip to main content
SonamuλŠ” Zodλ₯Ό μ‚¬μš©ν•˜μ—¬ TypeScript νƒ€μž…μ„ λŸ°νƒ€μž„μ—μ„œλ„ κ²€μ¦ν•©λ‹ˆλ‹€. 이 λ¬Έμ„œλŠ” Zod validation의 λͺ¨λ“  κΈ°λŠ₯κ³Ό νŒ¨ν„΄μ„ μ„€λͺ…ν•©λ‹ˆλ‹€.

Zodλž€?

νƒ€μž… μ•ˆμ „ μŠ€ν‚€λ§ˆ

TypeScript νƒ€μž… μžλ™ μΆ”λ‘  별도 νƒ€μž… μ •μ˜ λΆˆν•„μš”

λŸ°νƒ€μž„ 검증

μ‹€ν–‰ μ‹œ 데이터 검증 잘λͺ»λœ 데이터 차단

μƒμ„Έν•œ μ—λŸ¬

ν•„λ“œλ³„ μ—λŸ¬ λ©”μ‹œμ§€ 디버깅 용이

λ³€ν™˜ & κΈ°λ³Έκ°’

데이터 λ³€ν™˜ 및 κΈ°λ³Έκ°’ μœ μ—°ν•œ 처리

κΈ°λ³Έ μ‚¬μš©λ²•

Zod μŠ€ν‚€λ§ˆλŠ” Entityμ—μ„œ μžλ™ μƒμ„±λ˜μ§€λ§Œ, 직접 μ •μ˜ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

μŠ€ν‚€λ§ˆ μ •μ˜

데이터 검증

parse vs safeParse:
  • parse(): μ—λŸ¬λ₯Ό λ˜μ§‘λ‹ˆλ‹€. try-catch둜 처리
  • safeParse(): μ—λŸ¬λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. result.success둜 체크
API ν•Έλ“€λŸ¬μ—μ„œλŠ” parse()λ₯Ό μ‚¬μš©ν•˜μ—¬ μžλ™μœΌλ‘œ 400 μ—λŸ¬λ₯Ό λ°˜ν™˜ν•˜κ³ , UIμ—μ„œλŠ” safeParse()둜 μ•ˆμ „ν•˜κ²Œ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

κΈ°λ³Έ νƒ€μž… 검증

Entity의 각 νƒ€μž…λ³„ Zod κ²€μ¦μž…λ‹ˆλ‹€.

λ¬Έμžμ—΄ 검증

숫자 검증

λ‚ μ§œ 검증

뢈린 검증

볡합 νƒ€μž… 검증

λ°°μ—΄

객체

Enum

Union (μ—¬λŸ¬ νƒ€μž… 쀑 ν•˜λ‚˜)

κ³ κΈ‰ 검증 νŒ¨ν„΄

쑰건뢀 검증

데이터 λ³€ν™˜

κΈ°λ³Έκ°’ μ„€μ •

μ‹€μ „ 검증 νŒ¨ν„΄

API νŒŒλΌλ―Έν„° 검증

λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 검증

Form 검증

μ—λŸ¬ 처리

ZodError ꡬ쑰

μ—λŸ¬ λ©”μ‹œμ§€ μ»€μŠ€ν„°λ§ˆμ΄μ§•

μ—λŸ¬ ν¬λ§·νŒ…

μ„±λŠ₯ μ΅œμ ν™”

μŠ€ν‚€λ§ˆ μž¬μ‚¬μš©

λΆ€λΆ„ 검증

λ‹€μŒ 단계

E2E Type Safety

μ—”λ“œνˆ¬μ—”λ“œ νƒ€μž… μ•ˆμ „μ„±

Entity Types

Entity νƒ€μž… λ³€ν™˜

Generated Types

생성 νƒ€μž… ν™œμš©

Model Testing

Zod 검증 ν…ŒμŠ€νŠΈν•˜κΈ°