JSON → Zod 스키마
JSON 데이터에서 Zod 유효성 검사 스키마를 즉시 생성. 중첩 객체, 배열, nullable 필드, 선택적 속성 지원. 브라우저에서 완결.
사용 방법
- 왼쪽 패널에 JSON 데이터를 붙여넣습니다 (또는 예시 클릭).
- 루트 스키마 이름을 설정합니다 (내보내기 상수와 타입에 사용).
- 선택적으로 엄격 모드를 활성화하여 추가 키를 불허합니다.
- Zod 스키마 생성을 클릭합니다.
- 복사를 클릭하여 프로젝트에 붙여넣습니다.
출력 형식
완전한 TypeScript 스니펫을 출력합니다:
import { z } from “zod”— Zod 가져오기const FooSchema = z.object({…})— 스키마 정의export type Foo = z.infer<typeof FooSchema>— 추론된 TypeScript 타입
주요 사용 사례
- API 유효성 검사: API 응답 예시에서 스키마를 생성하여 실제 응답을 런타임에 검증.
- 폼 유효성 검사: 폼 데이터 형태를 Zod 스키마로 변환하여 react-hook-form 등에서 활용.
- 설정 파일: JSON 파일에서 로드하는 설정 객체를 정의하고 검증.
- 타입 안전성: TypeScript와 결합하여 하나의 스키마에서 런타임 검증과 정적 타입 추론을 동시에.
FAQ
Zod이란 무엇인가요?
Zod는 TypeScript 우선 스키마 선언 및 유효성 검사 라이브러리입니다. 데이터의 형태를 스키마로 정의하고 런타임에 데이터를 검증할 수 있습니다. API 응답 검증, 폼 유효성 검사, 설정 파싱에 널리 사용됩니다.
타입은 어떻게 추론되나요?
각 JSON 값을 검사합니다: 문자열→z.string(), 불리언→z.boolean(), 정수→z.number().int(), 부동소수점→z.number(), null→z.null(), 배열→z.array(), 객체→z.object(). 객체 배열에서 일부 항목에만 있는 키는 선택적으로 표시됩니다.
엄격 모드란 무엇인가요?
엄격 모드를 활성화하면 모든 z.object()에 .strict()가 추가됩니다. 스키마에 정의되지 않은 추가 키가 포함된 입력 객체를 Zod가 거부합니다. 비활성화 시 추가 키는 자동으로 무시됩니다.
생성된 스키마를 바로 사용할 수 있나요?
생성된 스키마는 좋은 시작점입니다. 문자열·숫자에 .min()/.max() 제약 추가, nullable 필드를 .nullable().optional()로 변경, 중첩 스키마를 별도 상수로 분리하는 등 프로젝트에 맞게 조정하는 것을 권장합니다.
JSON 데이터가 서버로 전송되나요?
아니요. 모든 처리는 브라우저 내에서 완전히 이루어집니다. JSON 데이터는 기기 밖으로 나가지 않습니다.