DB 클라이언트
Blyck의 DB 클라이언트는 SQLite · Oracle · PostgreSQL · MSSQL · MySQL 다섯 엔진을 같은 인터페이스로 다룹니다. 별도 DB 툴 없이 접속 · 스키마 탐색 · SQL 작성 · 결과 분석 · 데이터 수정 · 내보내기 · 자연어 SQL 생성까지 한 창에서 처리합니다.
지원 엔진 & 접속
Section titled “지원 엔진 & 접속”새 탭 메뉴(+)에서 엔진을 선택하거나 저장된 접속을 클릭합니다.
| 엔진 | 필수 입력 | 기본 포트 | 비고 |
|---|---|---|---|
| SQLite | 파일 경로 | — | 256MB 초과·잠김이면 읽기 전용 자동 전환 |
| Oracle | Host · Port · Service Name · 사용자 · 비밀번호 | 1521 | Thin 기본 → 실패 시 Thick 자동 폴백 |
| PostgreSQL | Host · Port · Database · 사용자 · 비밀번호 | 5432 | 스키마·SSL 옵션 |
| MSSQL | Host(서버\인스턴스) · Port · Database · 사용자 · 비밀번호 | 1433 | SQL 인증만 (Windows 통합 인증 미지원) |
| MySQL | Host · Port · Database · 사용자 · 비밀번호 | 3306 | SSL 옵션 |
Oracle Thin / Thick 모드
Section titled “Oracle Thin / Thick 모드”접속 다이얼로그에서 Thick 강제 옵션을 켜면 항상 Thick 모드로 연결합니다. 기본은 Thin을 먼저 시도하고 실패하면 Thick으로 폴백하며, 접속 후 헤더에 Oracle 접속됨 (Thin) 또는 Oracle 접속됨 (Thick) 으로 표시됩니다. Thick 모드를 사용할 때는 64비트 Oracle Instant Client 경로를 다이얼로그에 입력해야 합니다.
저장된 접속 & 비밀번호 자동완성
Section titled “저장된 접속 & 비밀번호 자동완성”접속 다이얼로그에서 저장 이름을 입력하면 접속 정보가 영구 저장됩니다. 비밀번호는 OS 암호화(Windows DPAPI / macOS Keychain)로 보호되며, 다음부터는 비밀번호 입력 없이 클릭 한 번으로 즉시 접속됩니다.
스키마 트리
Section titled “스키마 트리”접속하면 왼쪽 트리에 TABLES / VIEWS / INDEXES / TRIGGERS / ROUTINES 섹션이 표시됩니다.
- 테이블 · 뷰 펼치면 컬럼 목록(이름 · 타입 · PK 아이콘)이 표시되고, 더블클릭 시 처음 200행 조회가 SQL 편집기에서 즉시 실행됩니다.
- 인덱스 · 트리거 · 루틴 더블클릭 시 DDL을 편집기에 로드합니다.
- 트리에서 테이블·컬럼 이름을 SQL 편집기로 드래그해 삽입할 수 있습니다.
상단 검색바에서 이름 / 컬럼 / 둘 다 범위를 선택해 검색합니다. 컬럼 검색 시 해당 테이블이 자동으로 펼쳐지며, 헤더에 N / 전체 개수가 표시됩니다.
우클릭 메뉴 (테이블)
Section titled “우클릭 메뉴 (테이블)”| 항목 | 동작 |
|---|---|
| 상세 조회 | 컬럼 타입 · NULL 여부 · 기본값 · 인덱스 정보 |
| 처음 200행 조회 | 엔진 방언(LIMIT / TOP / ROWNUM)에 맞는 쿼리 자동 실행 |
| DDL 보기 | CREATE 문을 편집기에 로드 |
| 컬럼 분석 | NULL 비율 · 고유값 수 · 최빈값 · 수치 통계(min/max/평균, 표본 기반) |
DDL 쿼리를 실행하면 500ms 후 트리가 자동으로 백그라운드 재인덱싱되어 변경 사항이 반영됩니다. 수동으로 새로고침하려면 헤더의 ↻ 버튼을 클릭하세요.
SQL 편집기
Section titled “SQL 편집기”테이블 더블클릭 또는 트리 헤더의 새 쿼리 버튼으로 편집기를 엽니다.
| 버튼 | 동작 |
|---|---|
| ✨ | 자연어→SQL 입력바 토글 |
| ▶ | 쿼리 실행 (Ctrl+Enter) |
| ■ | 실행 중지 (실행 중일 때만 활성) |
| + | SQL 탭 추가 |
레일 하단에는 현재 패널의 SQL 탭 목록이 표시되어 탭 간 빠른 전환이 가능합니다.
DB명 — SQL ▾: 연결 전환 드롭다운- 자동커밋 체크박스 / 커밋 / 롤백
- AI (
Ctrl+I) : 셀 AI (그리드 선택 범위 분석) - 히스토리 / 스니펫 / 내보내기 ▾ / 포맷 / 닫기(
Esc)
실행 & 자동완성
Section titled “실행 & 자동완성”Ctrl+Enter또는 ▶ 버튼으로 실행합니다.- 텍스트를 선택한 상태에서 실행하면 선택 범위만 실행됩니다.
- 연결 DB의 테이블·컬럼 이름이 자동완성됩니다.
- 포맷 버튼은 SQL 절 앞 줄바꿈 기준으로 내장 정렬기를 실행합니다.
- DML 실행 후 상태 줄에
완료 — 변경 N행 · Xms또는 빨간색 오류가 표시됩니다.
자동커밋 체크박스를 OFF 하면 수동 트랜잭션 모드가 됩니다. DML을 실행해도 즉시 확정되지 않고 ● 미확정 상태로 유지됩니다. 커밋 버튼으로 확정하거나 롤백 버튼으로 되돌립니다.
서버측 쿼리 취소 (■ 중단)
Section titled “서버측 쿼리 취소 (■ 중단)”■ 버튼을 클릭하면 두 단계로 취소가 진행됩니다.
- 소프트 취소(즉시) — UI가 즉시 복귀하고 토큰을 무효화해 결과를 폐기합니다. 상태 줄에
실행 중단됨이 표시됩니다. - 서버측 취소(best-effort) — 엔진에 취소 신호를 전송합니다. DB 서버의 체크포인트에서 인식되면 쿼리가 중단됩니다.
| 엔진 | 취소 방식 |
|---|---|
| Oracle | connection.break() → ORA-01013 반환 |
| MSSQL | request.cancel() → TDS Attention 패킷 |
| PostgreSQL | 별도 연결로 pg_cancel_backend(pid) — 기존 연결 유지 |
| MySQL | 별도 연결로 KILL QUERY threadId — 기존 연결 유지 |
| SQLite | 서버 취소 없음 — 소프트 취소만(즉시 중단) |
SQL 편집기 제목 DB명 — SQL ▾ 을 클릭하면 현재 열려 있는 모든 DB 연결 목록이 표시되고, 현재 연결에는 ✓ 가 표시됩니다. 연결을 선택하면 편집기의 SQL은 그대로 유지하면서 실행 대상 DB만 전환됩니다.
결과 그리드
Section titled “결과 그리드”결과는 가상 스크롤 그리드로 표시되어 수십만 행도 부드럽게 탐색할 수 있습니다.
- 행 번호(
#) 열 은 가로 스크롤해도 고정됩니다. 클릭하면 행 상세 뷰어가 열립니다. - 상태 바 에
N행 · Xms실행 정보가 표시됩니다. - NULL 은
NULL로 구분 표시됩니다(빈 문자열과 구분). - 컬럼 폭 을 드래그로 조절할 수 있습니다.
정렬 · 필터
Section titled “정렬 · 필터”- 정렬: 컬럼 헤더를 클릭하면 오름차순(▲) · 내림차순(▼) 이 토글됩니다.
- 필터: 상단 입력란에 텍스트를 입력하면 모든 컬럼에서 부분 일치로 실시간 필터링됩니다(표시 행만 필터링, DB 재쿼리 없음).
5,000행 이상
Section titled “5,000행 이상”기본 5,000행을 표시하고, 초과 시 다음 5,000행 더 버튼으로 OFFSET/FETCH 누적 로드합니다.
셀 선택 · 복사
Section titled “셀 선택 · 복사”드래그로 사각형 범위를 선택하고, 내보내기 ▾ → 클립보드(TSV) 로 복사해 Excel에 바로 붙여넣을 수 있습니다. Shift+더블클릭으로 셀 전체 값을 뷰어로 확인합니다.
셀 직접 편집 → UPDATE
Section titled “셀 직접 편집 → UPDATE”단일 테이블 SELECT 결과이고 PK 컬럼이 포함되어 있을 때만 셀 편집이 활성화됩니다.
- 셀을 더블클릭 해 값을 수정합니다.
- 커밋 버튼을 클릭하면 편집기에
UPDATE … WHERE PK=…구문이 추가됩니다. Ctrl+Enter로 실행해 반영합니다.
실행된 변경은 다른 DML처럼 변경 이력(Ctrl+Shift+H)에 기록되어 되돌릴 수 있습니다.
새 행 추가 · 행 복사 → INSERT
Section titled “새 행 추가 · 행 복사 → INSERT”결과 그리드 툴바의 + 행 또는 행 복사 버튼으로 staged INSERT를 사용할 수 있습니다.
| 버튼 | 동작 |
|---|---|
| + 행 | 빈 행 추가 (비워두면 NULL) |
| 행 복사 | 선택 행의 모든 컬럼 값을 복제한 새 행 추가 |
행을 추가하고 셀을 편집한 뒤 저장 버튼을 클릭합니다. 저장 시 자동커밋을 일시적으로 OFF 하고 INSERT를 실행하므로, 이후 커밋 또는 롤백 으로 확정하거나 취소합니다.
대용량 내보내기 (CSV · Excel)
Section titled “대용량 내보내기 (CSV · Excel)”내보내기 ▾ → CSV 또는 Excel 을 선택합니다.
- 스트리밍 방식: 메인 프로세스가 디스크로 직접 스트리밍하므로 수백만 행도 메모리 걱정 없이 저장됩니다.
- 진행 모달에
N / 전체행 (X%)가 표시되고 취소 버튼으로 중간에 중단할 수 있습니다. - CSV: UTF-8 BOM 포함(Excel에서 한글 정상 표시).
- Excel(.xls): 1,048,575행 한도.
자연어 → SQL (✨)
Section titled “자연어 → SQL (✨)”SQL 편집기 왼쪽 레일의 ✨ 버튼으로 자연어 입력바를 토글합니다.
▸ 이번 달 매출 상위 5개 거래처▸ 지난 주 가입한 사용자 수를 일별로 보여줘동작 순서: 키워드 분석 → 활성 연결의 전체 스키마 점수화 → 관련 테이블·컬럼 선별 → SQL 생성 (각 단계 진행 상태와 경과 시간 표시). 생성된 SQL은 커서 줄 아래에 삽입됩니다(기존 내용 덮어쓰기 X). Ctrl+Z 로 되돌릴 수 있으며, 생성 중 취소 버튼으로 중단할 수도 있습니다.
생성된 SQL은 편집기에 들어오므로 검토 후 직접 실행합니다 — 자동으로 실행되지 않습니다.
SQL 스니펫
Section titled “SQL 스니펫”자주 쓰는 SQL을 저장해 빠르게 불러옵니다.
- 툴바 스니펫 버튼 클릭 → 현재 SQL 저장(이름 입력, 비우면 SQL 앞부분 자동).
- 항목을 클릭하면 편집기에 로드되고, ✕ 로 삭제합니다.
- 스니펫은 전역 저장되어 어느 DB 편집기에서도 사용할 수 있습니다.
쿼리 히스토리
Section titled “쿼리 히스토리”툴바 히스토리 버튼을 클릭하면 성공한 쿼리가 최신 순으로 표시됩니다(중복 자동 제거). 항목을 클릭하면 편집기에 로드됩니다. 히스토리는 userData/db-history.json 에 저장됩니다.
그리드 셀 AI (Ctrl+I)
Section titled “그리드 셀 AI (Ctrl+I)”그리드에서 셀 범위를 선택한 뒤 Ctrl+I 또는 툴바 AI 버튼을 클릭하면 선택 데이터를 컨텍스트로 AI에 질문할 수 있습니다.
▸ 이 중 이상점 분석해줘▸ 이 데이터로 UPDATE 쿼리 만들어줘▸ NULL 비율 높은 컬럼 이유가 뭘까?선택 값 · 테이블명 · 실행 SQL · PK 정보 · 엔진 종류를 컨텍스트로 분석합니다. 200행 초과 시 앞 200행만 전달됩니다.
트리 우클릭 → 컬럼 분석 을 선택하면 테이블의 실제 데이터 통계를 표본 기반으로 확인할 수 있습니다.
status 컬럼 — NULL 2.3% · Distinct 4개 (active, inactive, pending, blocked) · 최빈값 active 87%amount 컬럼 — NULL 0% · min 100 · max 9,800,000 · 평균 452,000NULL 비율 · 고유값 수 · enum 후보 · 수치형이면 min/max/평균을 제공합니다. 쿼리 작성 전 컬럼 특성을 파악하거나 인덱스 설계에 활용합니다.
위험한 쿼리 보호
Section titled “위험한 쿼리 보호”SQL 편집기에서 Ctrl+Enter로 직접 실행하는 쿼리는 확인 없이 바로 실행됩니다(파워 유저용). 대신 모든 DDL/DML이 변경 이력에 자동 기록되어 되돌릴 수 있습니다(아래 참고). 실행 전 확인창이 뜨는 경우는 다음 두 가지입니다.
| 경로 | 동작 |
|---|---|
AI가 실행하는 SQL (db_query 도구) | 읽기는 자동, 쓰기·파괴적(DROP/TRUNCATE/WHERE 없는 DELETE 등)은 확인 다이얼로그. prod 라벨 연결은 한 단계 강화 |
| SQL 코드 블록 ▶ 실행 (AI 답변·코드 편집기 코드렌즈) | DROP/DELETE/UPDATE/TRUNCATE/ALTER/GRANT/REVOKE 등은 쿼리 미리보기와 함께 확인 |
스키마 트리에서 우클릭 → DROP TABLE… 같은 작업은 테이블명을 직접 입력해야 실행되는 강한 확인을 거칩니다.
백업 기반 롤백
Section titled “백업 기반 롤백”DDL/DML 실행 시 변경 전 데이터가 자동 백업되어 사람·AI 실행 모두 되돌릴 수 있습니다.
- 소량(≤1,000행, PK 포함 단일 테이블): 내부 이력 DB에 변경 전 행을 JSON으로 보관.
- 대량 / 복잡 / PK 없음: 대상 DB에 백업 테이블(
blyck_bak_…)을 만들어 보관하고, 되돌리기 후 자동 삭제. DROP/TRUNCATE등 일부 DDL은 역SQL이 불가능해 되돌릴 수 없는 항목으로 표시됩니다.
변경 이력(Ctrl+Shift+H)에서 항목을 선택해 되돌리기 하세요. WHERE 없는 대량 UPDATE · DELETE도 백업 데이터로 복원할 수 있습니다.
AI 채팅과 함께
Section titled “AI 채팅과 함께”AI 채팅은 DB 도구를 직접 호출합니다.
▸ 이 테이블에서 중복 이메일 찾아줘▸ orders 스키마 보여주고 인덱스 추천해줘▸ 지난 달 주문 취소율이 높은 고객 TOP 10동작 순서: 스키마 확인(db_schema) → 필요 시 컬럼 분석 → 쿼리 작성·실행(db_query) → 실패 시 자가 수정. 쓰기 쿼리는 항상 위 안전장치(확인 다이얼로그)를 통과합니다.
다른 문서와의 연계
Section titled “다른 문서와의 연계”| 기능 | 문서 |
|---|---|
| SQL 편집기에 DB 링크해 코드 안 SQL 자동완성 | 코드 편집기 |
| DB 스키마·결과를 RAG 통합검색으로 | 통합 검색(RAG) |
| 변경 이력·DML 되돌리기 | 변경 이력 · Git |
| AI 채팅으로 DB 작업 자동화 | AI 채팅 |
Oracle NJS-116 오류가 뜹니다.
Thin 드라이버가 지원하지 않는 비밀번호 검증자 방식입니다. 접속 다이얼로그에서 Thick 강제 를 켜고 64비트 Instant Client 경로를 입력하세요.
■ 중단을 눌렀는데 쿼리가 안 멈춥니다.
서버측 취소는 best-effort 방식으로 다음 체크포인트에서 인식됩니다. 무거운 집계 쿼리는 잠시 기다리세요. SQLite는 서버 단계가 없어 즉시 중단됩니다.
대용량 쿼리 중 앱이 죽습니다.
그리드 클립보드 복사 대신 내보내기 ▾(디스크 스트리밍) 을 사용하세요. Excel은 100만 행 한도입니다.
CSV를 Excel에서 열었더니 한글이 깨집니다.
CSV는 UTF-8 BOM 으로 저장됩니다. Excel 데이터 가져오기 → 인코딩 65001 UTF-8 지정, 또는 클립보드(TSV) 로 직접 붙여넣기를 사용하세요.
셀 편집이 안 됩니다.
단일 테이블 SELECT 이면서 PK 컬럼이 포함된 결과에서만 활성화됩니다. JOIN · GROUP BY · UNION · DISTINCT 나 뷰 결과는 편집할 수 없습니다.
자연어→SQL 결과가 엉뚱한 테이블을 씁니다.
인덱스를 재빌드하고 📒 용어집 에 업무 용어·테이블 매핑을 등록하면 정확도가 높아집니다.
연결 직후 트리가 비어 있습니다.
접속 성공 후 스키마 인덱싱에 수 초가 걸릴 수 있습니다. 헤더 ↻ 새로고침 버튼을 클릭해 보세요. Oracle Thick 폴백 중이면 접속 완료까지 시간이 더 걸릴 수 있습니다.