JSONJSON Schema와 검증

array와 enum 제약

JSON Schema에서 array 항목 규칙을 items로 잡는 방법과 enum, const로 허용 값을 제한하는 방식을 정리합니다.

마지막 수정 2026년 3월 20일

기본 패턴

json
{
  "type": "object",
  "properties": {
    "status": {
      "enum": ["draft", "review", "published"]
    },
    "tags": {
      "type": "array",
      "items": { "type": "string" }
    }
  }
}

설명

  • array 검증에서는 items가 핵심입니다. 모든 항목이 어떤 schema를 따라야 하는지 지정할 수 있습니다.
  • 위치별 의미가 다른 tuple 형태라면 prefixItems 같은 더 세밀한 구성이 필요할 수 있습니다.
  • enum은 허용 가능한 값의 집합을 제한할 때 씁니다. 상태값, 종류, 코드 목록처럼 선택지가 정해진 데이터에 잘 맞습니다.
  • const는 하나의 고정값만 허용할 때 쓰며, enum 하나짜리보다 의도가 더 분명합니다.
  • array와 enum 제약을 함께 쓰면 "목록 항목의 타입"과 "허용 값의 범위"를 동시에 명확히 고정할 수 있습니다.

짧은 예제

json
{
  "type": "array",
  "items": {
    "enum": ["red", "green", "blue"]
  }
}

빠른 정리

keyword역할
itemsarray 항목 규칙
prefixItems위치별 항목 규칙
enum허용 값 집합 제한
const단일 고정값 제한

주의할 점

array와 enum 제약은 데이터를 읽는 사람보다 검증기를 먼저 만족시키는 문법처럼 보일 수 있지만, 실제로는 문서화 효과도 큽니다. 값이 무엇이 될 수 있고 무엇은 될 수 없는지를 schema만 보고 빠르게 이해할 수 있기 때문입니다.

참고 링크

2 sources