공간정보/표준

JSON 스키마 이해하기

하늘이푸른오늘 2020. 12. 19. 17:59

JSON 스키마는 JSON 데이터의 구조를 검증하기 위한 강력한 도구이다. 그러나, 사양만 읽고 사용법을 익히려는 것은 설계도를 보고 운전을 배우는 것과 유사하다. 식료품을 사러가야 한다면, 전기 모터가 어떻게 맞물려 돌아가는지 알 필요가 없다. 이 책은 따라서, JSON 스키마를 위한 친절한 운전교본을 목표로 한다. 즉, 이 문서는 JSON 스키마를 작성하고자 하지만, 차를 제작하고자 하려는 것은 아닌 사람(JSON 스키마 검증기 개발자)을 위한 것이다.

****참고****
이 책은 JSON 스키마 초안 7을 기술한다. 이전 버전의 경우, 여기에서 기술하는 포맷과 완벽하게 
호환되지는 않지만, 대부분 그 차이는 문서중에 설명된다.

시작방법

  • 이 책에서 사용하는 스키마 예제 및 JSON 스키마를 자신의 프로그래밍 언어와 연관시키기 위한 규약은 여기를 참고하라.
  • 스키마가 무엇인지 모르겠다면, 스키마란 무엇인가를 확인하라.
  • 기본 장을 보면 코어 JSON 스키마 참조문서를 이해하는데 충분할 것이다.
  • 많이 중첩되고 반복되는 부분이 많은 대형 스키마를 개발하기 시작한다면, 복잡한 스키마 구조화하기를 참조하라.
  • https://json-schema.org/에는 공식 사양 및 여러가지 프로그래밍 언어로 JSON 스키마를 사용할 수 있는 도구까지 다양한 자원이 존재한다.
  • http://jsonschema.net/은 JSON 스키마와 예제 문서를 돌려볼 수 있는 온라인 응용이다. 소프트웨어를 설치하지 않고 뭔가 해보고자한다면 매우 유용할 것이다.

목차

  • 이 책에서 사용하는 규약
    • 언어 별 주의사항
    • 초판 별 주의사항
    • 예제
  • 스키마란?
  • 기본
    • Hello, World!
    • 유형 키워드
    • JSON 스키마 선언
    • 고유 식별자 선언
  • JSON 스키마 레퍼런스
    • 유형 별 키워드
    • 문자열
      • 길이(Length)
      • 정규 표현식
      • 포맷
    • 정규 표현식
      • 예제
    • 숫자 유형
      • integer(정수)
      • number(수)
      • Multiples
      • Range
    • 객체
      • Properties(특질)
      • Required Properties(필수 특질)
      • Property names(특질 명)
      • Size
      • Dependencies(의존)
      • Pattern Properties(패턴 특질)
    • 배열
      • Items(항목)
      • Length
      • Uniqueness(유일성)
    • 불린
    • null
    • 포괄 키워드(Generic keywords)
      • Annotations(범례)
      • Comments(코멘트)
      • Enumerated values(열거 값)
      • Constant values(상수 값)
    • Media: 문자열-인코딩 비 JSON 데이터
      • contentMedia Type
      • contentEncoding
      • 예제
    • 스키마 결합
      • allOf
      • anyOf
      • oneOf
      • not
    • 하위 스키마를 조건적으로 적용하기
    • $schema 키워드
      • 고급
  • 복잡한 스키마 구조화
    • 재사용
      • 재귀
    • $id 특질
      • $id 를 $ref와 함께 사용하기
    • 확장

인쇄 버전은 여기에 있다.

==
원문 https://json-schema.org/understanding-json-schema/