샘플에서 계약으로

JSON 스키마 생성기빠진 필드까지 살펴보세요

예제를 먼저 실행하세요. 바깥 배열의 각 원소가 별도 문서일 때만 여러 샘플 모드를 선택합니다.

JSON 스키마 생성기

JSON 샘플

스키마 출력

현재 브라우저에서 처리하며 샘플을 업로드하거나 저장하지 않습니다.

추론 옵션

샘플은 업무 계약이 아닙니다. 모두 필수와 enum 설정은 제약을 지나치게 좁힐 수 있습니다.

샘플 1개 · 속성 7개 · enum 0개 · 생략 0개

JSON 스키마 생성기는 API 명세 없이 응답 예제만 있을 때 출발점을 제공합니다. 성공한 응답 하나로는 사라지는 필드나 타입 변화를 알 수 없으므로 서로 다른 기록을 함께 비교하는 편이 좋습니다.

키가 없는 상태와 값이 null인 상태는 다릅니다. 필수 필드도 null을 허용할 수 있고, null을 허용하지 않아도 키 자체는 생략 가능할 수 있습니다. 두 설정을 독립적으로 확인하세요.

JSON 스키마 생성기를 사용하는 이유

첫 번째 원소에만 의존하지 않기

JSON 스키마 생성기는 같은 구조 위치의 모든 배열 원소를 분석합니다. 다른 객체에 없는 키는 공통 필수 목록에서 빠지고, 명시적인 null은 타입에 남습니다. 다른 경로의 같은 이름 필드는 서로 합치지 않습니다.

두 기록이 하나의 구조로 합쳐지며 누락 필드는 점선, null 값은 속이 빈 표시로 남는다.

직접 쓴 제약을 보호하기

편집을 시작하면 자동 생성이 꺼집니다. 샘플을 바꾸고 다시 생성하면 별도의 후보가 나타나므로 기존 규칙이 즉시 사라지지 않습니다. 적용은 스키마 한 개를 바꾸며, 실행 취소는 입력과 옵션까지 복원합니다.

생성된 구조를 연필로 검토하고 변경 후보를 이전 초안 옆에 보관한 그림.

생성 전에 확인할 세 가지

01

바깥 배열의 역할 선택

단일 문서는 바깥 배열도 데이터로 취급합니다. 여러 샘플에서는 각 원소가 개별 문서가 됩니다. 배열 문서 여러 개를 비교하려면 배열 안에 배열을 넣으세요.

02

필수와 null 허용 구분

공통 필수는 같은 위치의 모든 객체에 있는 키입니다. 모두 필수로 설정하면 키가 빠진 원래 샘플이 거부될 수 있습니다. null 허용을 넓혀도 required 목록은 바뀌지 않습니다.

03

수정 뒤 현재 결과 확인

입력이나 옵션을 바꾸면 내보내기가 바로 비활성화됩니다. 자동 생성은 350ms 뒤 실행되며 수동 모드에서는 Ctrl/Cmd+Enter를 사용할 수 있습니다. 직접 편집한 결과의 교체는 후보 확인과 적용이 필요합니다.

값에서 구조를 추론하는 방식

검증기에 맞는 드래프트

JSON 스키마 생성기는 Draft 7, 2019-09, 2020-12를 제공합니다. 공통 type, properties, required, enum과 단일 스키마 items만 사용하므로 바뀌는 것은 $schema URI입니다. 기존 스키마 변환 기능은 아닙니다.

빈 배열과 숫자 처리

모든 배열 원소를 합치되 빈 배열은 원소 타입의 증거로 쓰지 않습니다. 모두 비어 있으면 items는 {}입니다. 1.0과 100e-2는 수학적으로 정수이고, 실제 소수가 섞이면 number로 합칩니다.

필요할 때만 enum 추론

기본값은 꺼짐입니다. 켜면 스칼라 위치마다 최대 20개 고유 값을 수집하며 추가되는 null도 셉니다. 한도를 넘으면 enum 전체를 생략하고 상태에 개수를 표시합니다. 객체와 배열에는 enum을 만들지 않습니다.

정밀도를 유지하는 JSON Schema 생성

큰 정수를 JavaScript Number로 반올림하지 않고 원래 표기를 보존합니다. 1과 1.0은 같은 값으로 처리합니다. 결과에 업무 조건을 직접 추가할 수 있지만 편집 검사는 JSON 문법과 루트 형태만 확인합니다.

추론으로 결정할 수 없는 조건

문자열 형식을 자동 감지하지 않음
날짜나 이메일처럼 보여도 string으로 남습니다. format, pattern, 길이, 최솟값과 최댓값, 기본값은 추측하지 않습니다. 추가 속성도 허용되므로 실제 계약에 맞게 검토하세요.
관측하지 않은 값은 알 수 없음
null만 있으면 비어 있지 않을 때의 타입을 알 수 없습니다. 빈 배열도 원소 타입을 알려주지 않습니다. 필드 사이의 상관관계와 조건 분기는 보존하지 않아 샘플에 없던 조합이 허용될 수 있습니다.
튜플과 고정 길이 제외
모든 원소를 하나의 items로 합칩니다. 첫 원소만 분석하거나 배열 순서를 고정 위치 계약으로 해석하지 않습니다. 참조와 조건부 규칙도 자동 생성하지 않습니다.
편집은 의미 검증과 다름
객체 또는 불리언 스키마를 허용하고 문법 오류와 중복 키는 거부합니다. 메타스키마, 외부 참조, 업무 샘플과의 일치는 검증하지 않습니다. 잘못된 키워드 의미도 문법 검사만으로는 잡히지 않습니다.
전체 문서 예산
입출력은 각각 500,000자와 50,000노드까지입니다. 입력 깊이는 40, 편집 출력은 100, 여러 샘플은 1~1,000개입니다. 주석, 후행 쉼표, NDJSON, 파일과 URL 가져오기는 지원하지 않습니다. 생성 결과가 한도를 넘으면 전체 작업을 중단합니다.

JSON 스키마 생성기 질문

JSON 데이터에서 JSON Schema를 어떻게 생성하나요?

단일 응답은 단일 문서 모드에 넣으세요. 여러 문서는 바깥 배열로 묶고 여러 샘플을 선택합니다. 결과의 필수 필드와 null 타입을 확인한 뒤 필요한 제약을 편집하세요.

어떤 JSON Schema 드래프트 버전을 사용해야 하나요?

기본은 2020-12입니다. 검증기가 지원하는 Draft 7이나 2019-09를 선택할 수도 있습니다. 이 도구가 만드는 일반 배열 구문은 세 버전에서 공통입니다.

도구는 필수 필드를 어떻게 결정하나요?

공통 설정에서는 같은 위치의 모든 객체에 있는 필드만 필수로 지정합니다. null도 키가 있으면 존재한 것으로 셉니다. 모두 필수 또는 필수 없음도 선택할 수 있습니다.

도구는 어떤 문자열 형식을 감지하나요?

감지하지 않습니다. 날짜와 이메일은 string입니다. format이 계약에 필요하다면 직접 추가하고 대상 검증기의 처리 방식도 확인하세요.

'추가 속성' 옵션은 무엇을 하나요?

이 도구에는 해당 옵션이 없으며 추가 속성을 허용합니다. 관찰한 키가 전부라는 근거가 없기 때문입니다. 제한하려면 편집으로 additionalProperties를 설정하고 실제 데이터를 검증하세요.

확인이 필요한 추론 결과가 있나요?

검토한 계약을 프로젝트에 적용

JSON 스키마 생성기에 일반 응답과 예외 사례를 함께 넣고, 추론된 제약을 검토한 뒤 필요한 업무 규칙을 추가하세요.