SQL DDL에서 JSON 스키마 변환 공식과 데이터 타입 매핑 규칙

변환할 관계형 데이터베이스 SQL CREATE TABLE DDL 구문을 기입하여 최신 표준 JSON 스키마 검증 객체 소스 코드를 간편하게 자동 생성해 보세요.

관계형 데이터베이스(RDB)의 테이블 구조를 선언하는 SQL DDL(Data Definition Language) 스크립트와 현대적인 모바일 API나 웹 문서형 NoSQL 데이터베이스에서 광범위하게 쓰이는 표준 데이터 검증 규격인 **JSON 스키마(JSON Schema Draft-07)**는 소프트웨어 아키텍처 상에서 상호 연동되어야 하는 상황이 잦습니다.
서버 백엔드 설계 명세가 변경될 때마다 SQL 컬럼 속성을 일일이 사람이 눈으로 매칭하며 JSON 스키마 파일 코드로 재코딩하는 과정은 오탈자가 발생하기 쉬운 번거로운 과정입니다. 본 글에서는 SQL DDL 스크립트를 표준 JSON 스키마 명세서로 변환하는 정적 파싱 매핑 공식과 데이터 타입 대조 체계를 해설합니다.
1. SQL 데이터 타입과 JSON 스키마의 데이터 매핑 공식
SQL DDL에 정의된 각 데이터 형식과 제약 조건은 JSON 스키마 Draft-07 규격의 속성 필드로 다음과 같이 1대1 매핑 변환됩니다:
[ \text{JSON Schema Attribute} = g(\text{SQL Column Specification}) ]
- 정수 및 실수 (Integer / Number):
INT,BIGINT$\rightarrow${ "type": "integer" }DECIMAL,FLOAT,DOUBLE$\rightarrow${ "type": "number" }
- 텍스트 문자열 (String):
VARCHAR(n),TEXT$\rightarrow${ "type": "string" }(VARCHAR의 $n$ 바이트 길이는"maxLength": n제약조건 제약조건 필드로 연동 매핑됩니다.)
- 날짜 및 시간 (DateTime):
DATETIME,TIMESTAMP$\rightarrow${ "type": "string", "format": "date-time" }
- 널 허용 여부 (Nullability):
NOT NULL제약조건이 선언되지 않은 일반 컬럼은 JSON 스키마의required배열 목록에서 누락시키거나, 타입 선언 시"type": ["string", "null"]포맷으로 유연하게 매핑 처리합니다.
2. DDL 스크립트 파싱 및 스키마 구조 빌더 알고리즘
SQL CREATE TABLE 텍스트 명령어를 문법 분석(Syntax Analysis)하여 JSON 스키마 객체로 가공해 내는 전산적 로직 공식 흐름은 다음과 같습니다:
- 테이블명 및 컬럼 리스트 추출:
정규표현식으로
CREATE TABLE ([a-zA-Z0-9_]+)구조에서 테이블 명칭을 파싱하고, 이어서 소괄호()내부의 컬럼 명세 줄글 리스트를 콤마 기준으로 쪼갭니다. - 행 단위 컬럼 필드 파싱 정규식:
// 컬럼명, 데이터타입, 제약조건을 파싱하는 정규식 예시 const colRegex = /^\s*([a-zA-Z0-9_]+)\s+([a-zA-Z]+)(?:\((\d+)\))?\s*(.*)$/i; - 스키마 빌딩 구조 조립:
파싱해 낸 컬럼 정보를 바탕으로 최상위
type: "object"스키마 뼈대를 구성하고,properties필드 자식으로 각 컬럼을 매핑해 배열 구조를 자동 조립합니다.
[!NOTE] 매번 데이터베이스 툴을 켜서 스키마 구조를 캡처하거나 수십 줄의 JSON 스키마 스키마 텍스트 파일 코드를 직접 타이핑하여 만들 필요 없이, SQL DDL-JSON 스키마 변환기 도구를 활용하면 SQL CREATE TABLE 스크립트를 기입하는 즉시 해당하는 표준 Draft-07 JSON Schema 코드를 1초 만에 자동 생성해 줍니다.
변환할 관계형 데이터베이스 SQL CREATE TABLE DDL 구문을 기입하여 최신 표준 JSON 스키마 검증 객체 소스 코드를 간편하게 자동 생성해 보세요.
3. 무결한 스키마 마이그레이션을 위한 개발 팁
- 외래키(Foreign Key) 및 제약 조건 처리:
SQL의 주요 고유 제약 조건인
UNIQUE나PRIMARY KEY가 부여된 컬럼은 데이터 정합성 보존을 위해 JSON 스키마로 포팅할 때 가급적 최상위 필수 항목(required) 배열에 강제로 등록되도록 알고리즘 옵션을 활성화해 주는 것이 데이터 정합성 면에서 안전합니다. - 커스텀 데이터 타입(Enum) 대조:
SQL DDL 문장 내에
ENUM('active', 'inactive')과 같은 선택형 제약이 명시되어 있다면, JSON 스키마 파일 변환 시 단순히type: "string"으로 끝내지 말고"enum": ["active", "inactive"]배열 필드를 추가 가산해 스키마 유효성 검사 강도를 촘촘히 셋업하는 편이 훌륭한 백엔드 무결성을 확보하는 지름길입니다.
