API 응답이나 폼 데이터 검증에 Zod를 도입하려고 합니다. 지금은 TypeScript 타입만 정의해두고 런타임 검증은 수동으로 if문 분기 처리하고 있는데, 코드가 점점 지저분해지네요.
Zod가 런타임 타입 검증에 좋다고 하는데, 실제 프로덕션에서 쓸 만한가요? 번들 사이즈나 성능에 영향은 없는지, 또 Joi나 Yup 대비 장점이 뭔지 궁금합니다.
// 런타임 검증 const result = UserSchema.safeParse(data); if (result.success) { // result.data는 User 타입 }
Joi/Yup 대비 장점: - TypeScript 네이티브: z.infer로 타입 자동 추론 - 번들 사이즈: ~13KB (gzip), Joi(~70KB)보다 훨씬 작음 - 에코시스템: tRPC, React Hook Form, Next.js Server Actions 등과 통합 우수
성능 이슈는 초당 수만 건 처리가 아니면 체감하기 어렵습니다.
개개발자준호1년 전
Zod + React Hook Form 조합이 정말 좋습니다. @hookform/resolvers/zod로 연결하면 폼 검증과 타입 안전이 한 번에 해결돼요. 에러 메시지도 한글로 커스텀 가능합니다.
데데이터사이언스현1년 전
API 경계에서 Zod 쓰면 외부 데이터가 들어올 때 타입 보장이 확실해져서 마음이 편합니다. any 타입 쓸 일이 거의 없어지더라고요.
프프론트수진1년 전
세 분 답변 감사합니다! 번들 사이즈도 작고 생태계도 좋네요. React Hook Form과 함께 도입하겠습니다. 해결됐습니다!
댓글 4
Joi/Yup 대비 장점:
- TypeScript 네이티브: z.infer로 타입 자동 추론
- 번들 사이즈: ~13KB (gzip), Joi(~70KB)보다 훨씬 작음
- 에코시스템: tRPC, React Hook Form, Next.js Server Actions 등과 통합 우수
성능 이슈는 초당 수만 건 처리가 아니면 체감하기 어렵습니다.