MODOO HUB ← 모두의 툴
Dev · Instrument

JSON Schema 생성기

JSON 데이터를 입력하면 Draft-07 형식의 JSON Schema를 자동으로 생성합니다

📖 JSON Schema 자동생성기가 놓치는 null과 배열 타입 함정 가이드 보기

JSON Schema 생성기

JSON 데이터를 입력하면 Draft-07 형식의 JSON Schema를 자동으로 생성합니다. 다만 두 가지 주의할 점이 있습니다. 첫째, 값이 null인 필드는 {"type":"null"}로만 생성되며 ["string","null"]처럼 다른 타입과 함께 nullable로 표현되지 않습니다 — 즉 샘플에서 우연히 null이었던 필드는 생성된 스키마상 오직 null만 허용하고 실제 문자열·숫자 값이 들어오면 검증에 실패하는 스키마가 만들어집니다. 둘째, 배열의 아이템 타입은 배열의 첫 번째 요소만 보고 추론되므로, [1,"two",3]처럼 타입이 섞인 배열을 넣으면 실제로는 문자열도 포함되어 있는데도 {"type":"integer"}만 있는 items 스키마가 생성됩니다.

자주 묻는 질문

null 값을 가진 필드는 어떤 스키마로 생성되나요?

{"type":"null"}로만 생성됩니다. 예를 들어 입력 JSON에 "middleName":null이 있으면 생성된 스키마의 middleName 필드는 {"type":"null"}이 되어, 이 스키마로 실제 문자열 값이 들어있는 데이터를 검증하면 오류가 납니다. 흔히 기대하는 {"type":["string","null"]} 같은 nullable 표현은 만들어지지 않습니다.

null 필드가 있으면 어떻게 수정해야 하나요?

생성된 스키마에서 해당 필드의 "type":"null"을 실제로 허용하고 싶은 타입과 null을 함께 담은 배열, 예를 들어 "type":["string","null"]로 직접 고쳐야 합니다. 이 도구는 샘플에 등장한 타입만 보고 추론하므로 nullable 필드는 수동 보정이 필요합니다.

배열에 여러 타입이 섞여 있으면 어떻게 처리되나요?

배열의 첫 번째 요소만 보고 items 스키마를 추론합니다. [1,"two",3]처럼 숫자와 문자열이 섞인 배열을 넣으면 첫 요소가 숫자이므로 {"type":"integer"}인 items 스키마가 생성되고, 배열에 실제로 문자열도 들어있다는 사실은 반영되지 않습니다.

배열 안의 객체들이 서로 다른 필드를 가지고 있으면요?

이 경우도 첫 번째 객체의 구조만 기준으로 items 스키마가 만들어집니다. 두 번째 이후 객체에만 있는 필드는 생성된 스키마에 전혀 반영되지 않으므로, 배열 내 항목들의 구조가 다양하다면 생성 결과를 반드시 검토하고 수동으로 보완해야 합니다.

JSON Schema란 무엇인가요?

JSON 데이터의 구조와 유효성을 정의하는 표준입니다. API 문서, 폼 유효성 검사, 데이터 계약에 사용됩니다.

additionalProperties: false가 무엇인가요?

스키마에 정의되지 않은 추가 속성을 허용하지 않는 설정입니다.

중첩 객체도 스키마가 생성되나요?

예, 재귀적으로 중첩 객체의 구조를 분석해 하위 스키마를 생성합니다.

생성된 스키마를 바로 사용할 수 있나요?

초안으로만 사용하세요. 위에서 설명한 null·배열 타입 추론의 한계를 검토하고, 실제 요구사항에 맞게 minLength·minimum·enum 등의 제약 조건을 추가해야 합니다.