JSON Schema 검증 설명

JSON Schema란 무엇인지, 스키마에 대한 데이터 검증 방법, 일반적인 패턴, 그리고 잘못된 JSON 디버깅 방법.

JSON Schema는 JSON 데이터에 주석을 달고 검증할 수 있게 하는 어휘입니다. 데이터의 구조, 타입, 제약 조건을 정의합니다.

JSON Schema란?

JSON Schema는 다른 JSON 문서의 기대되는 형태를 기술하는, 자체가 JSON 문서인 문서입니다. 어떤 필드가 존재해야 하는지, 어떤 타입이어야 하는지, 어떤 값이 허용되는지를 지정합니다.

{  "type": "object",  "properties": {    "name": { "type": "string" },    "age": { "type": "integer", "minimum": 0 },    "email": { "type": "string", "format": "email" }  },  "required": ["name", "email"]}

왜 JSON Schema를 사용하나요?

검증 없이는 애플리케이션이 어떤 데이터든 조용히 수용하고 실행 시 예기치 않게 실패합니다. JSON Schema는 오류를 조기에 캡처합니다.

  • API 계약 — 요청 및 응답 본문이 기대되는 형식과 일치하는지 확인.
  • 구성 검증 — 구성 파일의 오타와 누락된 필드를 캡처.
  • 양식 검증 — 클라이언트와 서버 모두에서 동일한 스키마를 사용하여 사용자 입력 검증.
  • 문서화 — 잘 작성된 스키마는 데이터 모델의 라이브 문서 역할.

핵심 키워드

type은 기대되는 데이터 타입을 지정. 문자열: minLength, maxLength, pattern, format. 숫자: minimum, maximum. 배열: items, minItems, maxItems. 객체: properties, required, additionalProperties.

allOf, anyOf, oneOf로 구성

allOf는 모든 스키마가 일치할 것을 요구. anyOf는 적어도 하나가 일치할 것을 요구. oneOf는 정확히 하나가 일치할 것을 요구.

잘못된 JSON 디버깅

검증이 실패하면 명확한 오류 메시지가 필요합니다. JSON Formatter 도구는 JSON을 포맷하고 검사하는 데 도움이 됩니다.

모범 사례

  • $ref 사용 — 스키마 중복을 피하기.
  • 구체적으로 — 고정 값 집합에는 enum 사용.
  • 스키마 버전 관리 — $schema와 $id 사용.
  • 경계에서 검증 — 데이터를 가능한 빨리 검증.

해보기

로컬 도구를 사용하여 JSON 데이터를 스키마에 대해 검증하세요 — 모든 것이 브라우저에서 실행됩니다.

Frequently asked questions

JSON Schema란 무엇입니까?
JSON Schema는 JSON 문서에 주석을 달고 검증할 수 있는 어휘입니다.
JSON Schema는 검증과 같은 것입니까?
아니요. JSON Schema는 사양이고, 검증은 데이터를 스키마에 대해 확인하는 프로세스입니다.
JSON Schema는 API 사양에 대해 JSON을 검증할 수 있습니까?
예. JSON Schema는 OpenAPI/Swagger 사양에서 요청과 응답 페이로드를 정의하는 데 자주 사용됩니다.
JSON Schema 검증 오류를 디버깅하려면 어떻게 해야 합니까?
대부분의 검증자는 검증이 실패한 정확한 경로를 반환합니다.