기본 패턴
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 | 역할 |
|---|---|
items | array 항목 규칙 |
prefixItems | 위치별 항목 규칙 |
enum | 허용 값 집합 제한 |
const | 단일 고정값 제한 |
주의할 점
array와 enum 제약은 데이터를 읽는 사람보다 검증기를 먼저 만족시키는 문법처럼 보일 수 있지만, 실제로는 문서화 효과도 큽니다. 값이 무엇이 될 수 있고 무엇은 될 수 없는지를 schema만 보고 빠르게 이해할 수 있기 때문입니다.
참고 링크
2 sources