스키마 기반 입력 폼 생성기
무작위 목데이터를 만드는 대신 선언한 JSON Schema를 실제 입력 흐름으로 바꿉니다. 엄격한 Draft 7 폼 프로필에서 타입이 있는 중첩 객체·배열, 선택값, 필수 속성, 스칼라 범위와 제한된 if/then/else 구분자를 지원합니다. 조건을 바꾸고 값을 입력한 뒤 첫 오류로 이동하고, 검증을 통과한 JSON만 다운로드합니다.
주요 기능
- 지원 범위를 벗어난 키워드를 거부하는 Draft 7 부분집합으로 실제 폼 생성
- 추가·삭제 버튼으로 중첩 객체와 배열 항목 편집
- 조건부 분기에 맞는 필드 표시 및 숨겨진 값 제거
- 필수 여부·타입·선택값·길이·범위·배열 개수를 검사하고 오류 필드 초점 이동
- 1열/2열 배치와 루트 필드 순서 지정
- 검증된 데이터 및 스키마·배치·초기값이 포함된 폼 정의 저장
사용 방법
- 계정 예제를 불러오거나 Draft 7 루트 객체 스키마와 초기 JSON을 입력합니다.
- 1열 또는 2열을 고르고 표시 순서에 모든 루트 속성을 한 번씩 씁니다.
- 폼을 생성해 중첩 필드, 배열, 조건부 값을 편집합니다.
- 검증 후 오류 목록에서 해당 필드로 이동해 수정합니다.
- 검증된 데이터 JSON 또는 버전이 있는 폼 정의를 다운로드합니다.
활용 예시
- 필드마다 화면을 직접 코딩하지 않고 구조화된 가입 신청 입력
- 필수 속성의 존재와 빈 문자열의 차이 학습
- 회사/개인 조건부 입력 화면 시제품 제작
- 검토 가능한 제한 프로필의 재사용 폼 정의 저장
자주 묻는 질문
모든 JSON Schema 키워드를 폼으로 바꾸나요?
아닙니다. 문서화한 Draft 7 폼 부분집합만 사용합니다. 참조, 타입 합집합, 정규식, format, 조합 키워드와 알 수 없는 키워드는 무시하지 않고 거부합니다. 별도 JSON Schema 검증기는 더 넓은 검증 범위를 지원합니다.
조건부 필드는 어떻게 작동하나요?
객체마다 하나의 필수 구분자, const가 든 if.properties, 기본 properties의 속성을 빈 스키마로 나열한 then/else와 각 분기의 required를 사용합니다. 비활성 분기 전용 필드는 숨기고 조건을 바꾸면 그 값을 제거합니다.
required는 빈 문자열도 막나요?
아닙니다. Draft 7 required는 속성이 있는지 검사합니다. 빈 문자열은 존재하는 값이며 minLength 같은 규칙이 있을 때만 거부됩니다.
중첩 배열을 쓸 수 있나요?
예. 동일한 항목 스키마가 객체나 배열일 수 있습니다. 명시한 깊이와 배열당 20개 한도 안에서 /addresses/1/street 같은 인덱스 경로의 오류를 보여 줍니다.
입력한 스키마가 업로드되나요?
아닙니다. 편집과 검증은 현재 브라우저 탭에서 실행합니다. 스키마, 초기값, 작성한 데이터는 다운로드 버튼을 눌렀을 때만 파일로 저장됩니다.
개인정보 안내
스키마·초기값·폼 입력은 브라우저 메모리에만 남습니다. 도구 API 전송이나 자동 저장은 없고 사용자가 요청한 파일만 다운로드합니다.
댓글과 질문