MyBatis 로그에는 SQL이 ? 투성이인 Preparing: 줄과, 값 목록인 Parameters: 줄로 나뉘어 찍힙니다. 장애 분석 때 이 둘을 눈으로 짝지어 물음표에 값을 하나씩 끼워 넣는 작업 — 파라미터가 스무 개쯤 되면 반드시 한 칸씩 밀립니다. 이 도구는 두 줄을 붙여넣으면 자동으로 짝지어 DB 툴에 바로 붙여 실행할 수 있는 SQL을 만들어 줍니다.
운영 쿼리와 파라미터는 민감한 데이터입니다 — 조립은 전부 브라우저 안에서 끝나고, 어떤 값도 외부로 전송되지 않습니다.
물음표에 값을 끼울 때는 JDBC 타입에 따라 SQL 리터럴 문법이 달라야 합니다. 이 도구는 Parameters 줄의 타입 표기((String)·(Integer)…)를 읽어 규칙을 적용합니다:
| 로그의 타입 | 변환 규칙 | 예 |
|---|---|---|
| String | 작은따옴표로 감싸고 내부 따옴표 이스케이프 | kim → 'kim' |
| Integer·Long·Double | 그대로(따옴표 없음) | 42 → 42 |
| Timestamp·Date | 날짜 리터럴로 감쌈 | 2026-08-29 … → '2026-08-29 …' |
| null | NULL 키워드 | null → NULL |
| Boolean | 불리언 리터럴 | true → true |
Preparing: SELECT * FROM orders WHERE user_id = ? AND status = ? AND amount > ?
Parameters: 1024(Long), PAID(String), 50000(Integer)
→ 조립 결과
SELECT * FROM orders WHERE user_id = 1024 AND status = 'PAID' AND amount > 50000
서울, 부산(String)처럼 값에 쉼표가 든 경우도 타입 표기를 기준으로 분리해 오분할을 줄입니다.Preparing: 줄과 Parameters: 줄을 함께 복사합니다 — 접두사가 붙은 채로 붙여넣어도 인식합니다.바인더의 재료인 Parameters 로그는 MyBatis 로그 레벨이 낮으면 아예 찍히지 않습니다. 개발·검증 환경에서는 매퍼 로거를 상세 레벨로 열어 두는 편이 장애 분석 속도를 크게 줄입니다 — 단, 운영 환경은 파라미터에 개인정보가 실릴 수 있어 로그 정책과 마스킹 규정을 먼저 확인해야 합니다. 로그가 없어 재현 SQL을 못 만드는 상황과, 로그에 민감정보가 남는 상황 — 둘 사이의 균형은 조직의 규정이 정합니다.
물음표 스무 개짜리 쿼리를 손으로 짝지으면 5분, 틀리면 다시 5분입니다 — 그리고 틀렸다는 사실은 실행 결과가 이상할 때에야 드러납니다. 장애 상황에서 이 왕복은 치명적입니다. 자동 조립은 시간 단축보다 확신을 줍니다: 개수 검증을 통과한 SQL은 적어도 "값이 밀려 들어간" 종류의 오류가 없다는 보증이 되고, 분석의 출발점을 신뢰할 수 있게 됩니다.
팀 차원에서는 장애 대응 절차에 이 도구를 끼워 넣는 방식이 효과적입니다 — "로그에서 Preparing/Parameters를 복사해 바인더로 조립한 SQL을 티켓에 첨부"를 표준 절차로 정하면, 담당자가 바뀌어도 재현 SQL의 품질이 일정해집니다.
조립한 SQL의 IN절을 새 값 목록으로 다시 만들려면 IN절·INSERT 생성기, 테이블 구조 확인은 DDL ↔ 정의서, 테스트 데이터가 필요하면 목데이터 생성으로 이어가세요.
DosqlKit(도스퀄킷)은 SQL 실무에서 반복되는 손작업을 한 화면에 모은 툴킷입니다. MyBatis 로그의 물음표(?)에 Parameters 값을 끼워 실행 가능한 SQL로 재조립하고, 엑셀·CSV 열을 IN절이나 INSERT문으로 만들고, DDL과 테이블 정의서를 서로 변환하고, 테스트용 목데이터를 생성합니다.
쿼리를 실제로 실행해 보기 전에 로그에서 바로 값을 확인하거나, 정의서 문서를 만들거나, 더미 데이터를 채워야 하는 SI·유지보수 현장을 위해 만들었습니다. 모든 변환은 접속한 기기의 브라우저 안에서 끝나며, 붙여넣은 로그·스키마·데이터가 외부 서버로 전송되지 않습니다. 아래에서 각 탭의 쓰임과 자주 묻는 질문을 정리했습니다.
콘솔에 찍힌 "Preparing:"(물음표가 든 SQL)과 "Parameters:"(값 목록) 두 줄을 붙여넣으면, 물음표 자리에 값을 순서대로 끼워 실제 실행된 SQL로 재조립합니다. 타입에 맞춰 문자열은 따옴표로 감싸 바로 실행·검증할 수 있습니다.
엑셀이나 CSV에서 복사한 열을 붙여넣으면 IN (…) 목록이나 INSERT문으로 만들어 줍니다. 오라클의 IN절 1000개 제한에 걸리면 자동으로 OR 조건으로 나눠 줍니다.
CREATE TABLE 문을 붙여넣으면 마크다운·TSV 테이블 정의서로 바꾸고, 반대로 정의서에서 DDL을 만듭니다. 목데이터 탭은 DDL에서 컬럼 유형을 추론해 원하는 행 수만큼 더미 데이터를 생성하며, 같은 시드는 항상 같은 결과를 냅니다.
네, 모든 도구를 무료로 쓸 수 있습니다. 운영 비용은 페이지에 표시되는 광고로 충당합니다.
아니요. 브라우저로 페이지를 열면 바로 쓸 수 있고, 로그인이나 프로그램 설치가 필요 없습니다.
아니요. 로그 바인딩, IN절 생성, 정의서 변환, 목데이터 생성은 모두 접속한 기기의 브라우저 안에서 처리되며, 입력한 내용은 외부 서버로 전송되지 않습니다.
아니요. 개인정보 오남용을 막기 위해 이런 식별번호는 체크섬(검증 숫자)이 일부러 어긋나게 생성되어 실제로는 유효하지 않은 값입니다. 테스트·개발 용도로만 사용하세요.
테마와 마지막으로 연 탭 같은 화면 설정만 브라우저 localStorage에 저장됩니다. 붙여넣은 로그·데이터 자체는 저장하지 않습니다.
Google 애드센스 광고가 표시될 수 있으며 광고 목적의 제3자 쿠키가 사용될 수 있습니다. 자세한 내용은 페이지 하단 "개인정보 안내"에서 확인할 수 있습니다.