SQL → JSON 변환기
INSERT 문이나 결과 집합을 붙여넣으세요. JSON 배열로 돌려드립니다.
이 도구가 하는 일
마이그레이션이나 pg_dump 출력에서 INSERT 문을 잔뜩 뽑아왔는데 API 시드나 픽스처용으로 JSON이 필요했던 적이 있다면, 붙여넣기 한 번으로 끝납니다. SELECT ... FOR JSON으로 다시 뽑으려고 덤프를 데이터베이스에 올릴 필요가 없습니다.
이 도구는 INSERT INTO table (col, col, ...) VALUES (...) 문 — 멀티 행 INSERT 포함 — 을 읽어서, 각 행을 컬럼명을 키로 갖는 JSON 객체로 만들어 JSON 배열로 내보냅니다. ISO SQL이 다루는 표준 방언과 PostgreSQL, MySQL, SQLite, SQL Server에서 흔히 쓰는 변형을 지원합니다.
값은 기대하는 대로 타입이 정해집니다. 정수와 소수 리터럴은 숫자로, 따옴표로 감싼 문자열은 문자열로, NULL은 JSON null로, TRUE/FALSE는 불리언으로 나갑니다. 날짜/시간 리터럴('2024-01-15', '2024-01-15 10:30:00')은 ISO-8601 문자열로 출력됩니다. 여러 테이블에 대한 INSERT를 같이 붙여넣으면 테이블마다 출력에 자기 키를 갖고, 그 아래 행들이 JSON 배열로 들어갑니다.
사용 방법
세 단계입니다. 행이 3개든 3,000개든 방식은 똑같습니다.
SQL을 붙여넣으세요 (또는 샘플 체험)
왼쪽 에디터에 INSERT 문을 넣어주세요. 단일 INSERT, 멀티 행 INSERT, 또는 여러 테이블에 대한 INSERT — 다 괜찮습니다. 샘플 불러오기를 누르면 orders와 items로 구성된 현실적인 예시를 볼 수 있습니다.
SQL은 있는 그대로 두세요 — 끝의 세미콜론, 인라인 주석(-- 또는 /* ... */), 스키마 접두사(public.orders)까지 전부 정상적으로 파싱됩니다.
변환 클릭
녹색 변환 버튼을 클릭하세요. 도구가 모든 INSERT를 읽고, 값과 컬럼명을 매칭한 뒤, 한 번에 JSON을 만듭니다.
JSON 복사
오른쪽 패널에 JSON 배열(여러 테이블 덤프라면 배열을 값으로 갖는 객체)이 표시됩니다. API 시드, Jest 픽스처, 정적 모크 서버에 그대로 붙여 넣으면 됩니다.
실제로 유용한 순간
기존 덤프에서 시드 만들기
<code>mysqldump</code>나 <code>pg_dump</code> 파일은 있는데, 기존 DB와 직접 통신하지 않는 새 앱을 위한 JSON 시드 데이터가 필요할 때. INSERT를 붙여넣고 JSON만 챙기면 됩니다.
테스트 픽스처 만들기
운영에서 몇 행을 INSERT 문 형태로(민감한 건 빼고) 가져와 통합 테스트나 Storybook 모크용 JSON 픽스처로 변환하세요.
API 시드 파일
새 마이크로서비스는 JSON으로 시드를 받도록 되어 있는데 데이터는 모노레포 안에 SQL 인서트로 들어 있다. 붙여넣기 한 번이면 시드 파일이 생깁니다.
프론트엔드 팀에 데이터 넘기기
프론트엔드 팀이 새 화면용 샘플 데이터를 필요로 합니다. SQL은 손에 있습니다. JSON으로 변환해서 모크 응답으로 레포에 넣어주면 됩니다.
자주 묻는 질문
어떤 SQL 방언을 지원하나요?
공통 부분을 지원합니다: PostgreSQL, MySQL/MariaDB, SQLite, SQL Server의 INSERT 구문. PostgreSQL의 E'...' 이스케이프나 MySQL의 백틱 식별자처럼 방언 고유의 문법도 처리합니다.
멀티 행 INSERT도 지원하나요?
네 — INSERT INTO orders (id, total) VALUES (1, 9.99), (2, 15.50), (3, 42.00);는 행마다 하나씩, 총 세 개의 객체를 가진 JSON 배열로 나옵니다.
여러 테이블로의 INSERT는요?
각 테이블은 출력 JSON에서 자기 키를 갖고, 그 아래 행들이 JSON 배열로 들어갑니다. 즉 orders와 order_items에 삽입하는 마이그레이션이면 {"orders": [...], "order_items": [...]} 형태가 됩니다 — 관계 구조를 유지해야 하는 시드 파일에 편합니다.
NULL, 날짜, 불리언은 어떻게 처리되나요?
NULL은 JSON null이 됩니다. TRUE/FALSE(스키마를 추론할 수 없을 때는 0/1)는 각각 JSON 불리언 또는 숫자가 됩니다. 날짜 리터럴은 RFC 3339에 맞춰 ISO-8601 문자열로 내보냅니다.
SQL을 실행하나요?
아니요 — 데이터베이스에 아무것도 실행하지 않습니다. 도구는 INSERT 구문을 파싱해 JSON만 만들어냅니다. 데이터가 변환 요청 밖으로 나가는 일은 없습니다.
SELECT 결과 집합은 어떤가요?
포맷된 결과 집합(컬럼 헤더와 행)을 붙여 넣으면 도구가 최선을 다해 JSON 배열을 만듭니다. 다만 컬럼명이 명시적인 만큼 INSERT 구문이 더 신뢰할 수 있습니다 — 가능하면 INSERT를 선호하세요.
함께 쓰면 좋은 도구
SQL → JSON은 나머지 도구 상자와 잘 어울립니다: