본문으로 건너뛰기

JSON 스키마 생성기

브라우저에서 샘플 JSON 데이터를 기반으로 Draft-07 호환 JSON 스키마를 유추합니다.

옵션

생성된 스키마

스키마 생성됨

정의된 속성
-
최상위 키
-

이용 방법

JSON 스키마는 JSON 데이터의 구조를 설명하고 유효성을 검사하기 위한 어휘입니다. 이 도구는 샘플 객체나 배열을 검사하여 모든 값의 유형과 형식을 유추하고, 유효성 검사 라이브러리에 바로 사용할 수 있는 Draft-07 호환 스키마를 구축합니다.

  1. 대표적인 샘플 JSON 붙여넣기

    현실적인 예제 값을 포함하여 예상되는 모든 필드를 포함하세요.

  2. 필수 항목, 예제 및 추가 속성 선택

    옵션을 변경하면 스키마가 업데이트됩니다.

  3. 스키마 복사 또는 다운로드

    프로덕션 환경에서 사용하기 전에 필수 배열과 형식을 검토하세요.

생성기가 감지하는 항목

모든 값은 string, integer, number, boolean, array, object 또는 null로 유형이 지정됩니다. 문자열 값은 추가로 email, date, date-time, uri, uuid, ipv4 등의 일반 형식에 대해 해당 순서대로 확인되므로, 둘 이상의 패턴과 일치하는 값은 첫 번째 일치 항목을 갖게 됩니다. 동일한 유추 유형을 공유하는 항목이 있는 배열은 단일 items 스키마로 통합되며, 혼합 유형을 가진 배열은 예제가 반복되지 않고 병합된 채 oneOf를 사용합니다.

스키마의 품질은 샘플에 달려 있습니다

생성기는 입력된 데이터만으로 스키마를 유추합니다. 특정 필드가 null 또는 문자열 값을 가질 수 있음에도 샘플 데이터에 문자열만 포함된 경우, 생성된 스키마는 해당 필드를 문자열로만 정의하고 null 허용 여부를 반영하지 못합니다. 실제 데이터에서 예상되는 모든 값 유형, 선택적 필드 및 예외 상황을 포함하는 샘플을 사용하세요.

자주 묻는 질문

샘플 JSON 데이터에서 JSON Schema를 자동으로 생성하려면 어떻게 해야 하나요?

입력 영역에 대표적인 JSON 객체나 배열을 붙여넣으세요. 도구가 각 키와 값을 검사하여 유형(문자열, 숫자, 불리언, 배열, 객체 또는 null)을 유추하고, 입력하는 동안 Draft-07 호환 JSON 스키마를 생성합니다. 필요에 따라 스키마 제목을 추가하고, 객체 키 필수 여부 설정, 예시 값 포함, 추가 속성 허용 여부를 선택할 수 있습니다.

생성된 JSON Schema가 서버로 전송되나요?

아니요. 스키마 생성은 JavaScript를 사용하여 브라우저 내에서만 실행됩니다. JSON 데이터와 생성된 스키마는 기기에 그대로 유지됩니다. 프로덕션 데이터, 내부 API 페이로드 또는 기밀 구성 객체를 소스로 사용하더라도 서버 노출 없이 안전하게 이용할 수 있습니다.

JSON Schema는 무엇에 사용되며 개발자에게 왜 필요한가요?

JSON Schema는 JSON 데이터 구조를 설명하고 검증하기 위한 어휘입니다. 개발자는 이를 사용하여 API 요청 및 응답 본문을 검증하고, 문서를 생성하며, quicktype이나 openapi-generator와 같은 코드 생성기를 구성하고, 서비스 간 데이터 계약을 강제하며, 스키마 기반 폼을 지원하는 프레임워크에서 폼 유효성 검사를 설정합니다.

단일 샘플에서 JSON Schema를 유추할 때의 주요 한계는 무엇인가요?

생성기는 제공된 샘플에 포함된 내용만 유추할 수 있습니다. 필드가 상황에 따라 null 또는 문자열일 수 있는데 샘플에 문자열 사례만 포함되어 있다면, 스키마는 문자열 유형만 지정하고 null 허용 사례를 놓치게 됩니다. 정확한 스키마를 생성하려면 예상되는 모든 값 유형, 선택적 필드 및 예외 사례를 포괄하는 대표적인 샘플을 사용하세요.

생성된 JSON Schema를 사용하여 코드에서 데이터 유효성을 검사할 수 있나요?

네, 가능합니다. 생성된 스키마는 표준 JSON Schema Draft-07이며, JavaScript 및 Node.js용 Ajv, Python용 jsonschema, .NET용 JSON.NET Schema와 같은 주요 유효성 검사 라이브러리에서 지원됩니다. 스키마 출력을 복사하여 원하는 유효성 검사 라이브러리와 통합하세요. 프로덕션 환경에서 사용하기 전에 required 배열 및 유형 제약 조건을 검토하고 조정하세요.

샘플에 포함되지 않은 추가 속성을 허용해야 하나요?

기본적으로 스키마는 additionalProperties를 false로 설정하므로 유효성 검사기가 샘플에 없는 필드를 거부하며, 이는 오타 및 예상치 못한 데이터를 포착하는 데 유용합니다. 실제 데이터에 유연한 API 응답처럼 샘플에 우연히 포함되지 않은 적법한 선택적 필드가 있는 경우 "목록에 없는 추가 속성 허용" 옵션을 켜세요.