본문으로 건너뛰기

{}?JSON Schema 생성기

로딩 중...

JSON Schema는 JSON 데이터의 구조와 유효성을 정의하는 표준 규격입니다. API 문서화, 입력 유효성 검사, 코드 생성 등에 활용됩니다. 이 도구는 실제 JSON 데이터를 분석하여 Schema를 자동으로 생성해 줍니다.

사용 방법

  1. 1
    JSON 입력

    왼쪽 입력창에 JSON 데이터를 붙여넣습니다. '예제 로드' 버튼으로 샘플 데이터를 불러올 수 있습니다.

  2. 2
    옵션 설정

    Draft 버전(2020-12, 2019-09, Draft 07)을 선택하고, required 필드 표시, additionalProperties 허용, 포맷 자동 감지(email, date, uri 등) 옵션을 설정합니다.

  3. 3
    스키마 확인 및 복사

    오른쪽에 생성된 JSON Schema를 확인하고, 복사 버튼으로 클립보드에 복사하거나 파일로 다운로드합니다.

활용 팁

  • 💡배열 안에 여러 객체가 있으면 공통 키를 required로, 일부 객체에만 있는 키는 optional로 추론합니다.
  • 💡포맷 감지 옵션을 켜면 email, date, date-time, uri, uuid 형식을 자동으로 인식합니다.
  • 💡additionalProperties: false 옵션을 끄면 스키마에 정의되지 않은 추가 필드도 허용됩니다.
  • 💡생성된 스키마는 ajv, zod, Pydantic 등 다양한 유효성 검사 라이브러리에서 바로 사용할 수 있습니다.

자주 묻는 질문

Q. JSON Schema란 무엇인가요?
A. JSON 데이터의 구조, 타입, 유효성 규칙을 정의하는 메타 스키마입니다. API 문서화, 입력 유효성 검사, 코드 생성 등에 사용됩니다.
Q. JSON Schema 유효성 검사를 코드에서 어떻게 사용하나요?
A. JavaScript는 ajv, Python은 jsonschema, Java는 json-schema-validator 라이브러리를 사용합니다. API 서버에서 요청 본문을 스키마로 검증하면 잘못된 데이터를 조기에 차단할 수 있습니다.
Q. required와 nullable의 차이는 무엇인가요?
A. required는 필드가 반드시 존재해야 함을 의미하고, nullable(또는 type: [string, null])은 null 값을 허용함을 의미합니다. 필드가 없는 것과 null인 것은 다른 개념입니다.
Q. JSON Schema 버전(Draft 7, 2019-09, 2020-12)에 따라 달라지는 점은?
A. 버전마다 새로운 키워드와 기능이 추가됩니다. $defs(구 definitions), unevaluatedProperties, prefixItems 등이 최신 버전에서 추가되었습니다. 라이브러리가 지원하는 버전을 확인하세요.

DevHelper

© 2026. All rights reserved.