{}?JSON Schema 생성기
로딩 중...
JSON Schema는 JSON 데이터의 구조와 유효성을 정의하는 표준 규격입니다. API 문서화, 입력 유효성 검사, 코드 생성 등에 활용됩니다. 이 도구는 실제 JSON 데이터를 분석하여 Schema를 자동으로 생성해 줍니다.
사용 방법
- 1JSON 입력
왼쪽 입력창에 JSON 데이터를 붙여넣습니다. '예제 로드' 버튼으로 샘플 데이터를 불러올 수 있습니다.
- 2옵션 설정
Draft 버전(2020-12, 2019-09, Draft 07)을 선택하고, required 필드 표시, additionalProperties 허용, 포맷 자동 감지(email, date, uri 등) 옵션을 설정합니다.
- 3스키마 확인 및 복사
오른쪽에 생성된 JSON Schema를 확인하고, 복사 버튼으로 클립보드에 복사하거나 파일로 다운로드합니다.
활용 팁
- 💡배열 안에 여러 객체가 있으면 공통 키를 required로, 일부 객체에만 있는 키는 optional로 추론합니다.
- 💡포맷 감지 옵션을 켜면 email, date, date-time, uri, uuid 형식을 자동으로 인식합니다.
- 💡additionalProperties: false 옵션을 끄면 스키마에 정의되지 않은 추가 필드도 허용됩니다.
- 💡생성된 스키마는 ajv, zod, Pydantic 등 다양한 유효성 검사 라이브러리에서 바로 사용할 수 있습니다.
자주 묻는 질문
- Q. JSON Schema란 무엇인가요?
- A. JSON 데이터의 구조, 타입, 유효성 규칙을 정의하는 메타 스키마입니다. API 문서화, 입력 유효성 검사, 코드 생성 등에 사용됩니다.
- Q. JSON Schema 유효성 검사를 코드에서 어떻게 사용하나요?
- A. JavaScript는 ajv, Python은 jsonschema, Java는 json-schema-validator 라이브러리를 사용합니다. API 서버에서 요청 본문을 스키마로 검증하면 잘못된 데이터를 조기에 차단할 수 있습니다.
- Q. required와 nullable의 차이는 무엇인가요?
- A. required는 필드가 반드시 존재해야 함을 의미하고, nullable(또는 type: [string, null])은 null 값을 허용함을 의미합니다. 필드가 없는 것과 null인 것은 다른 개념입니다.
- Q. JSON Schema 버전(Draft 7, 2019-09, 2020-12)에 따라 달라지는 점은?
- A. 버전마다 새로운 키워드와 기능이 추가됩니다. $defs(구 definitions), unevaluatedProperties, prefixItems 등이 최신 버전에서 추가되었습니다. 라이브러리가 지원하는 버전을 확인하세요.