</>DevTools

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<>로 타입을 추출하는 방법도 널리 활용됩니다.

🔗관련 도구🧰 기타 도구