JSON 스키마 생성기
하나 이상의 JSON 샘플을 붙여넣으면 생성기가 새 페이로드를 검증하는 데 사용할 수 있는 JSON 스키마를 추론합니다. 타입을 감지하고, 모든 샘플에 등장하는 필드를 필수로 표시하며, 값이 작은 닫힌 집합에서 나올 때 열거형(enum)을 추론하고, JSON 스키마 draft 2020-12를 준수하는 출력을 생성합니다.
JSON 스키마 생성 방법
-
1
샘플 문서 붙여넣기
하나 이상의 실제 페이로드를 사용하세요. 다양할수록 추론되는 스키마가 더 정확해집니다.
-
2
드래프트 선택
draft 2020-12(현행), draft 07(널리 지원됨) 또는 draft 04(레거시 OpenAPI용).
-
3
추론 조정
enum 추론 전환, 필수 필드 전략(교집합 대 합집합), 그리고 샘플이 하나만 제공될 때 모든 필드를 `required`로 표시할지 여부를 설정합니다.
-
4
생성
스키마는 `$schema`, `title`, `type`, `properties`와 함께 출력되며, 반복되는 하위 객체에는 중첩된 `$ref`가 부여됩니다.
추론이 잘하는 것
- 타입: string, number, integer, boolean, null, array, object.
- null 허용 여부: 한 샘플에서는
null이고 다른 샘플에서는 문자열인 필드는["string", "null"]이 됩니다. - 배열 항목: 동질적인 배열은 단일
items스키마를, 이질적인 배열은prefixItems를 생성합니다. - 열거형(enum): 관찰된 모든 값이 작은 집합에 속하면(설정 가능, 기본값 10개의 서로 다른 값)
enum을 출력합니다. - 필수: 샘플이 여러 개면 키의 교집합이
required가 되고, 샘플이 하나면 옵트아웃하지 않는 한 모든 키가 필수입니다. - 포맷: ISO-8601 날짜, 이메일, URI와 일치하는 문자열에는
format이 추론됩니다.
추론이 알 수 없는 것
- 의도와 예시의 차이: 샘플
age: 25에서는type: integer가 추론되지만,null도 허용하는지는 알 수 없습니다. 엣지 케이스를 포함하는 여러 샘플을 제공하세요. - 제약 조건:
minLength,maximum,pattern등은 직접 추가해야 합니다. 추론은 샘플에서 한계값을 추측하지 않습니다. - 비즈니스 로직: “이 세 필드 중 정확히 하나만 설정해야 한다”와 같은 조건에는
oneOf가 필요하며, 추론할 수 없습니다. - 참조: 생성기는 평면적인 스키마를 출력합니다. 반복되는 형태를
$defs로 분리하려면 생성 후에 처리하세요.
출력 예시
단일 샘플로부터:
{ "name": "Alice", "age": 30, "tags": ["admin", "user"] }
추론된 스키마(draft 2020-12):
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"name": { "type": "string" },
"age": { "type": "integer" },
"tags": { "type": "array", "items": { "type": "string" } }
},
"required": ["name", "age", "tags"]
}
흔한 실수
- 하나의 샘플만으로 추론하기. 스키마가 과적합되어 모든 필드가 필수가 되고 null 허용이 사라집니다. 항상 5~10개의 다양한 샘플을 입력하세요.
number를 의도했는데integer를 사용하기. 어떤 샘플에 소수가 있으면 추론된 타입은number가 되고, 모두 정수면integer가 됩니다. 둘 다 가능한 필드에는 소수를 포함한 샘플을 넣으세요.- 선택 필드를 놓치기. 5개 중 4개에 있고 1개에서 빠진 필드는 선택 필드가 됩니다(의도된 동작). 만약 5개 모두에 우연히 포함되면, 실제로는 API에서 선택 필드여도 스키마는 이를 필수로 표시합니다.
자주 묻는 질문
많을수록 좋지만, 보통 5~10개의 다양한 샘플이면 합리적인 스키마를 얻을 수 있습니다. 샘플이 하나면 모든 필드가 필수가 되고 null 허용 여부도 추론할 수 없으므로, 가능하면 항상 여러 변형을 제공하세요.
기본값은 draft 2020-12입니다. OpenAPI 3.0 호환성을 위해(OpenAPI는 draft 05/07의 부분집합을 사용) draft 07과 draft 04도 제공됩니다.
아니요. 샘플에서 제약 조건을 추론하면 스키마가 과적합됩니다. minLength, maximum, pattern 등은 생성 후 비즈니스 규칙에 따라 직접 추가하세요.
네. JSON 배열을 붙여넣으면 생성기는 각 요소를 개별 샘플로 취급하여 외부 배열이 아니라 개별 요소를 설명하는 스키마를 생성합니다. 외부 배열 자체의 형태가 필요하면 “배열 컨테이너로 취급” 옵션을 켜세요.
관련 도구
보색 찾기
어떤 입력에 대해서도 보색을 찾습니다. HSL 반대 색, 분할 보색 쌍, 그리고 접근성 있는 조합 제안을 반환합니다.
Webpack 설정 생성기
순수 JavaScript, React, Vue용 webpack 5 webpack.config.js를 만드세요. TypeScript, Babel, CSS 또는 Sass, 이미지, HtmlWebpackPlugin, 개발 서버, npm install 명령까지 함께 제공합니다.
XML 포매터
일관된 들여쓰기로 XML 문서를 정렬 출력하고, 정확한 줄 번호로 적격성 오류를 잡아냅니다.
색상 혼합기
두 HEX 색상을 2-20개의 균등한 색상 견본으로 섞습니다. 양 끝 색상을 포함해 각 중간 색상을 대문자 HEX 코드로 확인하세요.
Protocol Buffers 디코더
hex, Base64, Base64URL, 텍스트 또는 파일의 Protobuf 와이어 형식 바이트를 브라우저에서 디코딩하고 정확한 필드 후보를 확인한 뒤 비공개 보고서로 내보냅니다.
텍스트 파일 인코딩 변환기
깨진 문자를 고치기 위해 텍스트를 UTF-8, UTF-16, Latin-1, Windows-1252 등 여러 인코딩 사이에서 변환하세요.
이 도구는 다른 언어로도 제공됩니다
- Générateur de schéma JSON [FR]
- مولّد مخطط JSON [AR]
- JSON-Schema-Generator [DE]
- JSON-schemagenerator [SV]
- JSONスキーマジェネレーター [JA]
- Generator JSON Schema [ID]
- Generator schematów JSON [PL]
- Generador de Esquema JSON [ES]
- Gerador de Esquema JSON [PT]
- Trình tạo JSON Schema [VI]
- เครื่องมือสร้าง JSON Schema [TH]
- JSON-schemagenerator [NL]
- JSON Schema Generator [EN]
- Generatore di JSON Schema [IT]
- Генератор JSON-схем [RU]
- JSON Şema Oluşturucu [TR]
- JSON 模式生成器 [ZH]