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 데이터를 스키마에 대해 검증하세요 — 모든 것이 브라우저에서 실행됩니다.