SCHJSON Schema 생성기
JSON 데이터로부터 JSON Schema 자동 생성
JSON Schema 완벽 가이드
JSON Schema는 JSON 데이터의 구조·타입·제약 조건을 정의하는 표준 메타데이터 언어입니다. API 요청/응답 검증, 폼 유효성 검사, OpenAPI 문서화, TypeScript 타입 생성까지 활용 범위가 넓습니다. 이 도구는 실제 JSON 데이터를 분석해 draft 2020-12 표준의 Schema를 자동으로 생성합니다.
JSON Schema 핵심 키워드 완전 정복
기본 타입과 주요 키워드
| 키워드 | 설명 | 예시 |
|---|---|---|
| type | 데이터 타입 지정 | "type": "string" |
| required | 필수 필드 목록 | "required": ["id", "name"] |
| properties | 객체 필드 정의 | "properties": {"id": {...}} |
| items | 배열 요소 스키마 | "items": {"type": "string"} |
| enum | 허용 값 목록 | "enum": ["A", "B", "C"] |
| minimum/maximum | 숫자 범위 제한 | "minimum": 0, "maximum": 100 |
| pattern | 문자열 정규식 검증 | "pattern": "^[a-z]+$" |
실전 예시: API 요청 검증
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": ["name", "email", "age"],
"properties": {
"name": { "type": "string", "minLength": 1, "maxLength": 100 },
"email": { "type": "string", "format": "email" },
"age": { "type": "integer", "minimum": 0, "maximum": 150 }
},
"additionalProperties": false
}OpenAPI와의 관계
OpenAPI 3.1은 JSON Schema draft 2020-12를 직접 채택했습니다. 이 도구로 생성한 Schema를 OpenAPI 문서의 requestBody.content.schema 또는 responses.content.schema에 그대로 붙여넣을 수 있습니다. OpenAPI 3.0은 JSON Schema 서브셋을 사용하므로 nullable 등 일부 키워드 처리가 다릅니다.
TypeScript 타입으로 변환하기
생성된 Schema를 json-schema-to-typescript npm 패키지 또는 quicktype.io에 넣으면 TypeScript 인터페이스로 자동 변환됩니다. Zod 사용자라면 z.object()로 수동 매핑 후 z.infer<>로 타입을 추출하는 방법도 널리 활용됩니다.