
Zod란 무엇인가요?
Zod는 TypeScript 우선의 스키마 선언 및 검증 라이브러리입니다. API에서 반환된 데이터가 기대한 형식과 일치하는지 동적으로 체크하는 동시에 TypeScript 타입으로 추출할 수 있어, 런타임 신뢰성과 타입 안정성을 모두 잡을 수 있습니다.
런타임 검증이 왜 필요한가요?
TypeScript의 타입 체크는 컴파일 시간에만 발생합니다. 코드가 브라우저에서 실행될 때는 API에서 반환된 데이터가 변경되었거나 예상치 못한 null 값이 포함되어 있는지 알 수 있는 방법이 없습니다. Zod는 바로 이 공백을 메워줍니다.
기본 사용법
스키마를 정의하고 데이터를 파싱합니다:
import { z } from "zod";
const UserSchema = z.object({
id: z.number(),
username: z.string(),
email: z.string().email(),
});
// 타입을 자동으로 추출
type User = z.infer<typeof UserSchema>;
// 데이터 검증
const result = UserSchema.safeParse(apiData);
if (result.success) {
const user = result.data; // 완벽하게 타이핑됨
} else {
console.error(result.error);
}
Zod의 주요 특징
- 의존성 제로: 가볍고 효율적입니다.
- 개발자 친화적: 명확한 에러 메시지와 직관적인 API를 제공합니다.
- 강제 변환 (Coercion): 검증 과정에서 문자열을 숫자나 날짜로 변환할 수 있습니다.
- 변형 (Transformation): 스키마를 통과하는 동안 데이터를 정리하거나 수정할 수 있습니다.
결론
복잡한 JSON 구조에서 수동으로 Zod 스키마를 만드는 것은 매우 번거로운 작업입니다. “JSON to Zod” 변환기를 사용하여 TypeScript 프로젝트에서 견고한 데이터 검증 기반을 빠르게 구축하세요.