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 배열을 붙여넣으면 생성기는 각 요소를 개별 샘플로 취급하여 외부 배열이 아니라 개별 요소를 설명하는 스키마를 생성합니다. 외부 배열 자체의 형태가 필요하면 “배열 컨테이너로 취급” 옵션을 켜세요.
관련 도구
ASCII 표 참조
NUL, LF, DEL 같은 제어 문자를 포함해 모든 문자에 대한 10진수, 16진수, 8진수, 2진수, HTML 숫자 문자 참조를 담은 0부터 127까지의 전체 ASCII 표.
HTML 문자 참조
HTML 엔티티의 검색 가능한 목록, 각 엔티티의 이름 및 숫자 코드, 그리고 특수 문자 및 기호에 대한 1클릭 복사 기능을 제공합니다.
키보드 단축키 참고표
macOS, Windows, Linux에서 VS Code, Chrome, GNU Readline을 쓰는 Bash의 문서화된 기본 단축키를 검색합니다.
보색 찾기
어떤 입력에 대해서도 보색을 찾습니다. HSL 반대 색, 분할 보색 쌍, 그리고 접근성 있는 조합 제안을 반환합니다.
이메일 검증기
이메일 주소를 검증합니다. RFC 5322 구문 검사, 실시간 MX 레코드 조회, 그리고 로컬 파트, 도메인, 길이 정보를 제공합니다. 이메일은 전송되지 않습니다.
EditorConfig 생성기
들여쓰기 스타일과 크기, 줄 끝, 문자 인코딩, 공백 규칙을 지정해 .editorconfig 파일을 생성하고 IDE와 편집기 전반의 형식을 일관되게 유지하세요.
이 도구는 다른 언어로도 제공됩니다
- Générateur de schéma JSON [FR]
- JSON-schemagenerator [SV]
- เครื่องมือสร้าง JSON Schema [TH]
- مولّد مخطط JSON [AR]
- Generator JSON Schema [ID]
- Trình tạo JSON Schema [VI]
- JSON-Schema-Generator [DE]
- Generador de Esquema JSON [ES]
- JSON-schemagenerator [NL]
- Generator schematów JSON [PL]
- JSONスキーマジェネレーター [JA]
- Gerador de Esquema JSON [PT]
- Генератор JSON-схем [RU]
- JSON Şema Oluşturucu [TR]
- JSON 模式生成器 [ZH]
- JSON Schema Generator [EN]
- Generatore di JSON Schema [IT]