DevPro SQL Studio
DevPro SQL Studio는 DB 스키마 탐색과 지능형 SQL 포맷팅을 하나로 통합한 올인원 VS Code 개발 생산성 확장 프로그램입니다.
SpringBoot 및 NexaLAP 프로젝트 환경을 자동으로 감지하여 각 환경에 최적화된 기능을 제공합니다.
⚠️ 주의: DevPro SQLFormatter와 충돌
DevPro SQLFormatter(intermas.devpro-sqlformatter)가 이미 설치되어 있다면 반드시 제거 후 사용하세요.
DevPro SQL Studio는 DevPro SQLFormatter의 모든 기능을 포함하고 있으며, 두 확장을 동시에 사용하면 포맷터 충돌이 발생합니다.
🚀 주요 기능 (Features)
1. 지능형 프로젝트 감지
application.yml 기반 SpringBoot 환경 자동 감지
datasource.config 기반 NexaLAP 환경 자동 감지
- 수동 설정 모드를 통한 유연한 환경 구성
2. DB 탐색기 (Database Explorer)
- 사이드바 뷰: 연결된 다중 DB의 테이블, 뷰, 프로시저, 함수를 계층형 트리 구조로 탐색합니다.
- 상세 명세서: 트리 노드 클릭 시 웹뷰 패널을 통해 컬럼 정보(PK/FK, 데이터 타입 등) 및 연관 관계를 표 형태로 확인합니다.
- SQL 자동 생성: 선택한 테이블에 대한
INSERT, UPDATE, DELETE MyBatis 구문을 원클릭으로 클립보드에 복사합니다.
3. MyBatis Mapper 뷰 (SpringBoot 전용)
- Mapper 트리뷰: SpringBoot 프로젝트의 MyBatis Mapper XML 파일을 사이드바 트리로 시각화합니다.
- XML 파일 클릭 시 에디터에서 바로 열기 지원.
4. Model Explorer (NexaLAP 전용)
- Model 트리뷰: 서비스의 경로에 있는
.workflow 파일 목록을 트리 구조로 표시합니다.
- NexaLAP 모드에서만 사이드바에 노출됩니다.
- 에디터 통합: SQL 및 MyBatis XML 파일을 저장할 때 자동으로 포맷팅을 수행합니다. (설정 가능)
- 단축키 지원:
Ctrl+Alt+F (Mac: Cmd+Alt+F)로 선택 영역 또는 전체 코드를 즉시 포맷팅합니다.
- MyBatis 완벽 지원:
<select>, <insert> 등 동적 태그 내부의 SQL을 인식하여 올바르게 들여쓰기하고 포맷을 맞춥니다.
- 포맷팅 설정 커스터마이징: SELECT 절 쉼표 위치(Leading/Trailing), River Align, 대소문자 변환(Upper/Lower) 등 다양한 설정을 제공합니다.
- Playground 웹뷰: 전용 웹뷰 화면(✨ SQL 포맷팅 화면 열기)에서 실시간으로 텍스트를 붙여넣고 포맷팅 옵션을 테스트할 수 있습니다.
📖 사용방법 (Usage)
1. 프로젝트 연결 (시작하기)
확장 프로그램은 VS Code에서 워크스페이스 폴더를 열면 자동으로 프로젝트를 감지합니다.
자동 감지 순서:
- 워크스페이스 루트에
application.yml 파일이 있으면 → SpringBoot 모드 활성화
- 워크스페이스 루트에
datasource.config 파일이 있으면 → NexaLAP 모드 활성화
- 둘 다 없으면 → 수동 설정 모드 (사이드바 상단 📁 아이콘으로 설정 파일 직접 선택)
모드 전환 후 🔄 새로고침 버튼을 클릭하면 트리 뷰가 갱신됩니다.
2. DB 탐색기 사용법
① DB 연결 확인
- 사이드바 좌측 패널에서 DevPro SQL Studio 아이콘을 클릭합니다.
📂 DB 뷰에 연결된 데이터소스의 목록이 트리 형태로 나타납니다.
- 트리 구조:
데이터소스 → 스키마 → 테이블 / 뷰 / 프로시저 / 함수
② 테이블 상세 정보 확인
- 테이블 노드를 클릭하면 웹뷰 패널이 열리며 다음 정보를 확인할 수 있습니다:
- 컬럼 목록 (이름, 데이터 타입, PK/FK, Null 허용 여부, 기본값, 설명)
- 프로시저/함수의 경우 파라미터 정보
③ SQL 자동 생성 (클립보드 복사)
- 상세 웹뷰 하단의 버튼을 클릭하면 해당 테이블의 MyBatis 구문이 클립보드에 복사됩니다:
INSERT INTO ... — 전체 컬럼 삽입 구문
UPDATE ... SET ... — 전체 컬럼 수정 구문 (PK 기반 WHERE 조건 포함)
DELETE FROM ... — PK 기반 삭제 구문
④ 엑셀 정의서 연동 (선택 사항)
devproSqlStudio.excelPath 설정에 .xlsx 파일 경로를 지정하면 엑셀의 한글 컬럼 설명이 DB 스키마 정보보다 우선 적용됩니다.
3. MyBatis Mapper 뷰 사용법 (SpringBoot 전용)
- SpringBoot 모드 활성화 시 사이드바에
📂 Mapper 뷰가 표시됩니다.
- Mapper XML 파일들이 폴더 구조 그대로 트리에 나타납니다.
- 파일 노드를 클릭하면 해당 XML 파일이 에디터에서 열립니다.
- Mapper 파일을 에디터에서 열고 저장하면 자동 포맷팅(
formatOnSave)이 적용됩니다.
4. Model Explorer 사용법 (NexaLAP 전용)
- NexaLAP 모드 활성화 시 사이드바에
📂 Model 뷰가 표시됩니다.
5. SQL 포맷터 사용법
방법 ① 저장 시 자동 포맷
.sql 파일 또는 MyBatis Mapper XML 파일을 저장(Ctrl+S)하면 자동으로 포맷팅이 적용됩니다.
- 자동 포맷을 끄려면
devproSqlStudio.formatOnSave 설정을 false로 변경합니다.
방법 ② 단축키로 포맷
- 에디터에서 포맷하려는 코드를 선택(또는 전체 선택)한 후
Ctrl+Alt+F를 누릅니다.
- 선택 영역이 없으면 파일 전체를 포맷합니다.
방법 ③ 우클릭 컨텍스트 메뉴
- 에디터 또는 탐색기에서 파일을 우클릭하면 다음 메뉴가 나타납니다:
.sql 파일: Format SQL
- MyBatis XML 파일:
Format SQL (MyBatis), 문서 생성 (.md)
방법 ④ SQL Playground (테스트 화면)
- 사이드바 상단의 ✨ SQL 포맷팅 화면 열기 아이콘을 클릭합니다.
- 웹뷰 화면 좌측에 SQL을 붙여넣습니다.
- 우측에서 포맷팅 옵션(쉼표 위치, 대소문자, River Align 등)을 실시간으로 조정합니다.
- 결과를 확인한 후 복사 버튼으로 클립보드에 저장합니다.
6. 포맷팅 옵션 설정
사이드바 상단 ⚙️ 포맷 옵션 설정 아이콘 또는 VS Code 설정 UI(Ctrl+, → "DevPro SQL Studio" 검색)에서 변경합니다.
주요 옵션 설명:
| 옵션 |
값 |
예시 |
commaPosition: leading |
쉼표를 줄 앞에 배치 |
, column_name |
commaPosition: trailing |
쉼표를 줄 뒤에 배치 |
column_name, |
caseMode: upper |
예약어 대문자 변환 |
SELECT, FROM, WHERE |
caseMode: lower |
예약어 소문자 변환 |
select, from, where |
riverAlign: true |
예약어를 8자 기준으로 우측 정렬 |
SELECT, FROM |
addInOutComments: true |
쿼리 상단에 입출력 변수 주석 자동 삽입 |
-- INPUT: #{param} |
escapeXmlSymbols: true |
<, > 문자를 XML 엔티티로 변환 |
<, > |
🛠 단축키 (Shortcuts)
| 기능 |
Windows/Linux |
Mac |
| SQL 포맷팅 |
Ctrl+Alt+F |
Cmd+Option+F |
| Markdown 문서 생성 |
Ctrl+Alt+M |
Cmd+Option+M |
⚙️ 설정 (Configuration)
VS Code 설정(settings.json)에서 아래의 항목들을 커스터마이징 할 수 있습니다:
| 설정 키 |
기본값 |
설명 |
devproSqlStudio.commaPosition |
leading |
SELECT 절 쉼표 위치 (leading 또는 trailing) |
devproSqlStudio.riverAlign |
false |
키워드 우측 정렬 여부 |
devproSqlStudio.caseMode |
upper |
예약어 대소문자 (upper, lower, preserve) |
devproSqlStudio.formatOnSave |
true |
저장 시 자동 포맷 여부 |
devproSqlStudio.indentSize |
4 |
들여쓰기 크기 |
devproSqlStudio.mybatisSupport |
true |
MyBatis 동적 XML 태그 파싱 지원 여부 |
devproSqlStudio.addInOutComments |
false |
쿼리 상단 입출력 주석 자동 삽입 여부 |
devproSqlStudio.escapeXmlSymbols |
false |
XML 특수문자(<, >) 자동 이스케이프 여부 |
devproSqlStudio.datasourcePath |
./.settings/datasource |
NexaLAP 데이터소스 폴더 경로 |
devproSqlStudio.excelPath |
"" |
테이블 정의서 엑셀 파일 상대 경로 |
| |