JSON to Zod 스키마 변환기
온라인 JSON to Zod 스키마 변환기. 붙여넣으면 즉시 Zod 스키마를 생성합니다. 100% 브라우저 처리. z.number().int(), .optional(), .nullable() 지원. 무료.
옵션
Zod 스키마란 무엇인가요?
Zod 스키마는 값의 형태를 TypeScript 우선으로 기술한 것으로, 런타임에 데이터를 검증하고 컴파일 타임에 정적 타입을 추론합니다. JSON 샘플에서 하나를 생성하면 API 응답, 폼, 설정 파일을 위해 검증 보일러플레이트를 손으로 쓸 필요가 없습니다. 이 Zod 스키마 생성기는 올바른 타입을 추론하고, 없는 키를 .optional()로, null 값을 .nullable()로 표시하며, z.infer 타입을 건네줍니다 — 모두 100% 브라우저에서 이뤄집니다.
예시
API 응답
{"id":101,"name":"Ada Lovelace","email":"ada@example.com","active":true,"roles":["admin","user"]} import { z } from "zod";
export const RootSchema = z.object({
id: z.number().int(),
name: z.string(),
email: z.string(),
active: z.boolean(),
roles: z.array(z.string()),
});
export type Root = z.infer<typeof RootSchema>;
일반적인 REST 페이로드가 바로 사용할 수 있는 Zod 스키마가 됩니다. 정수는 z.number().int()로 추론되고 roles 배열은 z.array(z.string())가 됩니다. z.infer 타입도 무료로 제공됩니다.
중첩 객체
{"repo":"zod","owner":{"login":"colinhacks","id":100}} import { z } from "zod";
export const OwnerSchema = z.object({
login: z.string(),
id: z.number().int(),
});
export const RootSchema = z.object({
repo: z.string(),
owner: OwnerSchema,
});
export type Root = z.infer<typeof RootSchema>;
중첩 객체는 필드에서 참조되는 별도의 명명된 스키마(OwnerSchema)가 됩니다. 자식 스키마는 그것을 사용하는 부모보다 먼저 선언되며, 동일한 형태는 한 번만 선언되어 재사용됩니다.
객체 배열(선택적 필드)
{"users":[{"id":1,"nick":"x"},{"id":2}]} import { z } from "zod";
export const UserSchema = z.object({
id: z.number().int(),
nick: z.string().optional(),
});
export const RootSchema = z.object({
users: z.array(UserSchema),
});
export type Root = z.infer<typeof RootSchema>;
객체 배열은 하나의 요소 스키마로 병합됩니다. 일부 항목에 없는 키는 .optional()이 되므로, 그 키가 없어도 파싱은 여전히 성공합니다.
Nullable 필드와 숫자 통합
{"items":[{"sku":"A1","discount":0.1},{"sku":"A2","discount":null}]} import { z } from "zod";
export const ItemSchema = z.object({
sku: z.string(),
discount: z.number().nullable(),
});
export const RootSchema = z.object({
items: z.array(ItemSchema),
});
export type Root = z.infer<typeof RootSchema>;
일부 샘플에서는 null이지만 다른 샘플에서는 타입이 있는 필드는 .nullable()이 됩니다. 0.1에는 소수점이 있으므로 숫자는 z.number().int()가 아니라 z.number()로 통합됩니다.
JSON을 Zod로 변환하는 방법
- 1
JSON 붙여넣기
JSON 객체, 배열 또는 API 응답을 입력 상자에 넣으세요. 변환이 즉시 시작됩니다.
- 2
출력 조정
루트 스키마의 이름을 바꾸고 import 줄, z.infer 타입, export 키워드를 토글하여 프로젝트 스타일에 맞추세요.
- 3
복사 또는 다운로드
생성된 Zod 스키마를 한 번의 클릭으로 가져와 검증 계층에 바로 붙여넣으세요.
Common Use Cases
- API 응답 검증
- 샘플 REST나 GraphQL 응답을 Zod 스키마로 바꿔 fetch 경계에서 파싱하면, 잘못된 데이터가 앱으로 새어 들지 않고 명확한 오류로 빠르게 실패합니다.
- 타입 안전한 폼과 입력
- 폼이나 쿼리 입력의 스키마를 생성하고 UI와 핸들러 전반에서 z.infer 타입을 재사용하여 엔드투엔드 타입 안전성을 얻으세요.
- tRPC와 AI 도구 스키마
- 예시 페이로드에서 tRPC 프로시저나 AI 구조화 출력 도구의 입력·출력 스키마를 손으로 쓰지 않고 부트스트랩하세요.
변환이 작동하는 방식
- 구조적 추론
- 각 객체는 명명된 스키마가 되며, 동일한 형태는 한 번만 선언되어 재사용됩니다. 객체 배열은 키 단위로 병합되고, 일부 항목에 없는 키는 .optional()이 됩니다.
- 올바른 타입 매핑
- 정수는 z.number().int()로, 소수는 z.number()로 매핑됩니다. 문자열, 불리언, null은 각각 z.string(), z.boolean(), z.null()로 매핑되고, 원시 타입이 섞인 배열은 z.union()이 됩니다.
- TypeScript 타입 포함
- 루트 스키마에 z.infer 타입 별칭이 방출되므로 스키마가 유일한 정보 출처로 유지되고 타입이 검증에서 어긋나지 않습니다.
- 100% 클라이언트 측
- 파싱과 생성이 네트워크 호출 없이 브라우저에서 실행되므로 데이터가 비공개로 유지됩니다.
깔끔한 Zod 스키마를 위한 팁
- 루트 스키마 이름 짓기
- 읽기 쉽고 자체 문서화되는 코드를 위해 기본값 Root 대신 User나 ApiResponse 같은 의미 있는 루트 이름을 설정하세요.
- z.unknown()과 유니온 정교화
- 비어 있거나 혼합된 배열은 z.unknown()이나 광범위한 z.union()을 생성합니다. 더 풍부하고 대표적인 샘플을 붙여넣어 도구가 정확한 타입을 추론하게 한 다음, 모호하게 남는 부분을 좁히세요.
- 경계에서 검증하기
- 신뢰할 수 없는 데이터가 들어오는 곳 — API 응답, 폼 입력, 웹훅 — 에서 safeParse()를 호출하여, 잘못된 데이터가 애플리케이션 로직에 도달하기 전에 잡으세요.
자주 묻는 질문
JSON을 Zod 스키마로 어떻게 변환하나요?
JSON to Zod와 JSON Schema to Zod의 차이는 무엇인가요?
스키마에서 TypeScript 타입을 어떻게 얻나요?
선택적 필드와 null 필드는 어떻게 처리되나요?
어떤 숫자 타입을 생성하나요?
출력이 Zod 3과 Zod 4에서 동작하나요?
생성된 스키마로 데이터를 어떻게 검증하나요?
배열과 혼합 타입은 어떻게 처리되나요?
제 JSON 데이터는 비공개이고 안전한가요?
이 도구는 무료인가요? 계정이 필요한가요?
관련 도구
모든 도구 보기 →Base64 디코더 · 인코더 (Base64 Decoder & Encoder)
인코딩 & 포매팅
Base64를 온라인에서 무료로 인코딩하고 디코딩합니다. UTF-8과 이모지를 완벽 지원하는 실시간 변환으로, 100% 브라우저에서 처리되어 회원 가입이 필요 없습니다.
Base64 이미지 변환기 (온라인)
인코딩 & 포매팅
Base64 문자열이나 데이터 URI를 온라인 브라우저에서 이미지로 디코딩합니다. 미리보고, 치수와 MIME을 읽은 뒤 PNG, JPG, GIF, SVG로 다운로드하세요. 업로드 없음.
CSV to JSON 변환기 (CSV to JSON Converter)
인코딩 & 포매팅
브라우저에서 CSV를 JSON으로 변환합니다. RFC 4180, 타입 추론, 헤더 행, 큰 정수 안전 처리. 100% 비공개, 업로드 없음.
.env을 JSON으로 변환하는 도구
인코딩 & 포매팅
.env 파일을 붙여넣으면 즉시 JSON으로 변환됩니다. 데이터베이스 비밀번호, API 키, 토큰이 브라우저를 절대 벗어나지 않는 100% 비공개 무료 온라인 dotenv 파서입니다.
무료 HTML 엔티티 디코더 — HTML 언이스케이프
인코딩 & 포매팅
온라인에서 HTML 엔티티를 디코딩하고 HTML을 언이스케이프하세요. 무료, 가입 불필요, 100% 브라우저에서 처리. 이름·10진수·16진수 참조를 문자로 되돌리며 업로드 없음.
무료 HTML 엔티티 인코더 — HTML 이스케이프
인코딩 & 포매팅
온라인에서 HTML 엔티티를 인코딩하고 특수문자(< > & " ')를 이스케이프하세요. 무료, 100% 브라우저에서 처리. 이름·10진수·16진수 출력, 업로드 없음.