콘텐츠로 건너뛰기
ToolsMinify logo
개발자 도구

JSON Schema 생성기

브라우저에서 JSON 샘플로 draft JSON Schema를 생성하세요 - 계정·업로드·CLI 없음.

JSON Schema 생성기 정보

브라우저에서 JSON 샘플로 draft JSON Schema를 생성하세요 - 계정·업로드·CLI 없음. API 응답 또는(더 좋음) 레코드 배열을 붙여 넣으세요. 중첩 객체는 중첩 스키마, 배열은 첫 요소만이 아니라 모든 요소로 타입을 정하고, 동일한 누락 키 패턴은 optional(required에서 제외)이 됩니다. JSON null은 optional로 접히지 않고 nullable 타입이 됩니다. email, uri, uuid, date, date-time처럼 보이면 string format을 추론합니다. Draft-07 또는 2020-12를 고른 뒤 스키마를 복사·다운로드하세요. 같은 샘플의 인터페이스는 JSON to TypeScript 변환기, minify된 payload는 JSON 미니파이어와 함께 사용하세요.

JSON Schema 생성기 사용 방법

  1. JSON 붙여 넣기(레코드 배열이 단일 객체보다 optional 키 추론에 유리). optional vs nullable을 먼저 보려면 샘플 로드.
  2. 스키마 title 설정, Draft-07(기본) 또는 2020-12 선택. 객체가 additional properties를 거부할지 허용할지 선택.
  3. 추론 리포트 확인: 속성 수, required·optional 키, format 힌트. 경고는 빈 배열·빈 객체·전부 null·혼합 union을 표시.
  4. JSON Schema 복사 또는 .schema.json 다운로드. AJV, Zod(변환기 경유), OpenAPI draft, CI validator에 사용.
  5. 서버로 전송되지 않음. 잘못된 JSON은 줄·열을 보고.

JSON Schema 생성기 예시

레코드 배열에서 optional 키

[{"sku":"A1","qty":2},{"sku":"B7","qty":1,"gift":true}]는 items가 sku·qty를 require하고 gift는 optional(not in required)인 배열 스키마가 됩니다.

Nullable vs optional

한 행에서 email이 없고 다른 행에서 note가 null이면 email은 optional string, note는 type ["string","null"]. 누락 키와 JSON null은 구분됩니다.

문자열 format 힌트

email, https URL, UUID, ISO date/date-time처럼 보이면 format: email, uri, uuid, date, date-time이 붙어 validator가 강제할 수 있습니다.

빈 컨테이너

{"items":[],"meta":{}}는 items를 빈 items 스키마 배열, meta를 속성 없는 객체로 둡니다. 더 풍부한 샘플을 붙이라는 경고가 나옵니다.

Draft-07 vs 2020-12

두 draft는 같은 추론 형태. Draft-07은 대부분 도구가 기대하는 $schema URI. 스택이 2020-12를 문서화하면 전환.

일반적인 사용 사례

  • OpenAPI / AsyncAPI spec 전 JSON Schema 초안
  • AJV로 CI에서 webhook payload(Stripe, GitHub, Slack) 검증
  • 픽스처 파일을 contract test 계약으로 변환
  • config·feature-flag payload 스키마 부트스트랩
  • 같은 샘플 JSON에서 TypeScript interface와 병행

JSON Schema 생성기에 대한 자주 묻는 질문

샘플 JSON에서 JSON Schema는 어떻게 생성하나요?
JSON 샘플 붙여 넣기, title 설정, draft 선택, 생성 스키마 복사. 생성은 브라우저에서. 중첩 객체·배열을 전부 순회하고 배열 항목에서 누락된 키는 required에서 제외합니다.
optional과 nullable 차이는?
optional은 일부 배열 항목에 키가 없어 required에 없음. nullable은 키가 있고 값이 JSON null이라 type에 null 포함(예: type: ["string","null"]). 샘플이 둘 다 보여 주지 않으면 접히지 않습니다.
어떤 JSON Schema draft를 써야 하나요?
Draft-07이 validator·에디터에서 가장 널리 지원. 도구가 2020-12 $schema URI를 명시하면 2020-12. 추론 속성은 동일합니다.
items나 properties가 비는 이유는?
빈 배열은 검사할 요소가 없어 items가 {}. 빈 객체는 properties가 비어 있음. 채워진 예를 붙여 넣으세요.
string format은 항상 맞나요?
샘플 값 휴리스틱(email, uri, uuid, date, date-time). 프로덕션 계약 전 검토 - 샘플에서 email처럼 보여도 항상 email은 아닐 수 있습니다.
JSON이 업로드되나요?
아니요. 스키마 생성은 이 탭에서만. 샘플은 브라우저를 떠나지 않습니다.
JSON to TypeScript 변환기와 무엇이 다른가요?
둘 다 같은 종류의 샘플을 순회. 이 페이지는 validator·OpenAPI draft용 JSON Schema. TypeScript 변환기는 application code용 interface/type. 계약과 typed client가 모두 필요하면 같은 payload에서 둘 다 사용.
additionalProperties: false가 unknown 키를 거부하나요?
Reject extras를 켠 두면 예 - 엄격 API 계약에 유용. 샘플에 없는 필드를 클라이언트가 보낼 수 있으면 Allow extras로 전환.