이 도구가 해결하는 일

SI 프로젝트의 영원한 숙제 — 테이블 정의서(엑셀)와 실제 DDL이 따로 놉니다. 컬럼 하나 추가될 때마다 두 곳을 고쳐야 하고, 어느 쪽이 최신인지 아무도 모르게 됩니다. 이 도구는 DDL → 정의서, 정의서 → DDL 양방향 변환으로 한쪽만 진실로 두고 다른 쪽을 생성하는 흐름을 만들어 줍니다.

양방향 — 무엇이 오가나

방향입력출력
DDL → 정의서CREATE TABLE마크다운 표 또는 TSV(엑셀 붙여넣기용) — 컬럼명·타입·NULL·기본값·코멘트
정의서 → DDL마크다운·TSV 표CREATE TABLE + 코멘트 문

방언(Oracle·PostgreSQL·MySQL) 차이는 주로 코멘트 문법에 반영됩니다 — 컬럼 코멘트를 인라인으로 쓰는 방언과 별도 COMMENT ON 문으로 쓰는 방언을 구분해 출력합니다.

실무 시나리오

예시

CREATE TABLE users (
  user_id    BIGINT       NOT NULL,
  login_id   VARCHAR(50)  NOT NULL,
  created_at TIMESTAMP    DEFAULT CURRENT_TIMESTAMP
);

→ 정의서(요지)

| 컬럼      | 타입          | NULL | 기본값             |
| user_id   | BIGINT       | N    |                    |
| login_id  | VARCHAR(50)  | N    |                    |
| created_at| TIMESTAMP    | Y    | CURRENT_TIMESTAMP  |

자주 겪는 함정

사용 순서

정의서 품질이 곧 소통 품질

테이블 정의서는 개발자끼리의 문서가 아니라 현업·검수·운영이 함께 보는 계약서에 가깝습니다. 컬럼 코멘트가 채워진 DDL에서 생성한 정의서는 "이 컬럼이 무엇인지"가 설명된 문서가 되고, 코멘트 없는 스키마에서 나온 정의서는 이름만 나열된 표가 됩니다 — 변환 결과가 비어 보이면 스키마의 코멘트부터 채우라는 신호로 읽는 것이 맞습니다. 역방향(정의서→DDL)은 그 설명을 COMMENT 문으로 되살려 스키마에 넣어줍니다.

양방향이라 가능한 워크플로

한 방향 변환기는 "문서 만들기"까지만 돕지만, 양방향이면 순환이 만들어집니다: 설계 단계엔 정의서→DDL로 빠르게 실물을 만들고, 개발이 진행되며 스키마가 바뀌면 DDL→정의서로 문서를 재생성합니다. 문서를 고치는 것이 아니라 다시 만들어내는 흐름이 되면, "문서가 낡는" 문제 자체가 사라집니다 — 산출물 마감 주간의 야근을 줄이는 가장 실질적인 방법입니다.

변환 결과를 검수할 때는 컬럼 수·기본키·NOT NULL 세 가지만 원본과 대조해도 큰 사고는 걸러집니다. 나머지 속성은 어긋나도 눈에 띄지만, 이 셋은 조용히 틀린 채 문서로 굳는 항목들입니다.

자주 묻는 질문

여러 테이블을 한 번에 변환할 수 있나요?
CREATE TABLE 문 단위로 처리합니다 — 테이블별로 넣는 것이 결과 확인에 안전합니다.
TSV 출력은 어디에 쓰나요?
복사해서 엑셀에 붙여넣으면 셀 단위로 갈라져 들어갑니다 — 기존 정의서 양식에 옮겨 담기 좋습니다.
스키마 정보가 외부로 나가나요?
아니요. 변환은 브라우저 안에서 끝납니다 — 사내 스키마를 다뤄도 전송이 없습니다.
인덱스도 변환되나요?
중심은 컬럼 정의입니다. 인덱스·파티션 같은 부가 정의는 DDL 원본에서 별도로 관리하세요.
코멘트가 없는 DDL은요?
코멘트 열이 비어 있는 정의서가 나옵니다 — 정의서에 설명을 채운 뒤 역방향 변환하면 COMMENT 문이 생성됩니다.

함께 쓰는 도구

정의서로 만든 테이블에 테스트 데이터를 채우려면 목데이터 생성이 바로 이어집니다. 운영 쿼리 분석은 로그 바인더, 값 목록 조회는 IN절 생성기를 쓰세요.

DosqlKit(도스퀄킷) — SQL 실무 툴킷

DosqlKit(도스퀄킷)은 SQL 실무에서 반복되는 손작업을 한 화면에 모은 툴킷입니다. MyBatis 로그의 물음표(?)에 Parameters 값을 끼워 실행 가능한 SQL로 재조립하고, 엑셀·CSV 열을 IN절이나 INSERT문으로 만들고, DDL과 테이블 정의서를 서로 변환하고, 테스트용 목데이터를 생성합니다.

쿼리를 실제로 실행해 보기 전에 로그에서 바로 값을 확인하거나, 정의서 문서를 만들거나, 더미 데이터를 채워야 하는 SI·유지보수 현장을 위해 만들었습니다. 모든 변환은 접속한 기기의 브라우저 안에서 끝나며, 붙여넣은 로그·스키마·데이터가 외부 서버로 전송되지 않습니다. 아래에서 각 탭의 쓰임과 자주 묻는 질문을 정리했습니다.

주요 기능

사용법

MyBatis 로그 바인더

콘솔에 찍힌 "Preparing:"(물음표가 든 SQL)과 "Parameters:"(값 목록) 두 줄을 붙여넣으면, 물음표 자리에 값을 순서대로 끼워 실제 실행된 SQL로 재조립합니다. 타입에 맞춰 문자열은 따옴표로 감싸 바로 실행·검증할 수 있습니다.

IN절·INSERT 생성기

엑셀이나 CSV에서 복사한 열을 붙여넣으면 IN (…) 목록이나 INSERT문으로 만들어 줍니다. 오라클의 IN절 1000개 제한에 걸리면 자동으로 OR 조건으로 나눠 줍니다.

DDL ↔ 정의서 · 목데이터

CREATE TABLE 문을 붙여넣으면 마크다운·TSV 테이블 정의서로 바꾸고, 반대로 정의서에서 DDL을 만듭니다. 목데이터 탭은 DDL에서 컬럼 유형을 추론해 원하는 행 수만큼 더미 데이터를 생성하며, 같은 시드는 항상 같은 결과를 냅니다.

자주 묻는 질문

DosqlKit은 무료인가요?

네, 모든 도구를 무료로 쓸 수 있습니다. 운영 비용은 페이지에 표시되는 광고로 충당합니다.

회원가입이나 설치가 필요한가요?

아니요. 브라우저로 페이지를 열면 바로 쓸 수 있고, 로그인이나 프로그램 설치가 필요 없습니다.

붙여넣은 로그나 스키마가 서버로 전송되나요?

아니요. 로그 바인딩, IN절 생성, 정의서 변환, 목데이터 생성은 모두 접속한 기기의 브라우저 안에서 처리되며, 입력한 내용은 외부 서버로 전송되지 않습니다.

생성된 목데이터의 주민·사업자·카드번호를 실제로 써도 되나요?

아니요. 개인정보 오남용을 막기 위해 이런 식별번호는 체크섬(검증 숫자)이 일부러 어긋나게 생성되어 실제로는 유효하지 않은 값입니다. 테스트·개발 용도로만 사용하세요.

어떤 정보가 저장되나요?

테마와 마지막으로 연 탭 같은 화면 설정만 브라우저 localStorage에 저장됩니다. 붙여넣은 로그·데이터 자체는 저장하지 않습니다.

광고와 쿠키는 어떻게 처리되나요?

Google 애드센스 광고가 표시될 수 있으며 광고 목적의 제3자 쿠키가 사용될 수 있습니다. 자세한 내용은 페이지 하단 "개인정보 안내"에서 확인할 수 있습니다.

SQL 실무 가이드