Nexa SQL
v0.1.9세 OS에서 똑같이 동작하는 경량 SQL 클라이언트(IDE) + CLI nsql — SQL*Plus식 세션 변수를 모든 DBMS에서
모든 데스크톱 OS에서 사용할 수 있어요
- 4종 내장 DBMS 드라이버 (Oracle · SQL Server · PostgreSQL · SQLite)
- 11.8MB Windows x64 MSI 설치본 (v0.1.9)
- 13개 CLI nsql 명령
- 173종 객체 탐색기 DBMS 아이콘
설치
Windows
조용한 설치 (MSI)
msiexec /i nexa-sql-0.1.9-windows-x64.msi /qn GitHub Releases에서 받은 MSI 파일 이름으로 바꿔 실행합니다. 컴퓨터 단위 설치입니다.
- GitHub Releases에서
nexa-sql-<버전>-windows-x64.msi를 받아 더블클릭합니다. 설치 중nsql을 PATH에 추가하는 항목과.sql파일 연결(선택)을 고를 수 있습니다. - 코드 서명이 없어 SmartScreen이 막으면 추가 정보 → 실행을 누릅니다. 받은 파일은
sha256sums.txt와Get-FileHash로 대조하세요. - Oracle에 접속하려면 Oracle Instant Client를 따로 설치하고 설정 ▸ DBMS ▸ Oracle에서 폴더를 지정하거나
NSQL_ORACLE_CLIENT_DIR을 설정합니다.
Windows 10 1809 이상 · x64. winget(SosomLab.NexaSQL)은 아직 등록 전이고, Chocolatey(nexa-sql)는 0.1.5에서 멈춰 있어(2026-10-12 확인) 최신 버전은 GitHub Releases에서 받으세요. 제거는 설정 ▸ 앱에서 합니다(설정·프로필은 %APPDATA%\nexa-sql에 남음).
macOS
Homebrew Cask (권장)
brew install --cask kiros33/tap/nexa-sql 설치 때 격리 표식을 떼어 주어 바로 실행되고 nsql도 PATH에 연결됩니다. 탭이 릴리스를 자동 추종하며 0.1.9 반영을 2026-10-12에 확인했습니다. 갱신은 brew upgrade --cask kiros33/tap/nexa-sql.
- 설치 파일 —
nexa-sql-<버전>-macos-universal.pkg를 실행하면/Applications/Nexa SQL.app과/usr/local/bin/nsql이 설치됩니다..dmg는 앱을 응용 프로그램 폴더로 끌어 놓습니다. - 직접 받은 앱이 Gatekeeper에 막히면
xattr -dr com.apple.quarantine "/Applications/Nexa SQL.app"을 실행하세요. - 제거:
sudo "/Applications/Nexa SQL.app/Contents/Resources/uninstall.sh"(Homebrew는brew uninstall --cask kiros33/tap/nexa-sql).
macOS 11 Big Sur 이상 · Apple Silicon · Intel 공용 Universal. 설정·프로필은 ~/Library/Application Support/nexa-sql에 있습니다.
Linux
APT 저장소 (Debian · Ubuntu)
sudo curl -fsSLo /usr/share/keyrings/sosomlab-archive-keyring.gpg https://pkg.sosomlab.com/sosomlab-archive-keyring.gpg && sudo curl -fsSLo /etc/apt/sources.list.d/sosomlab.sources https://pkg.sosomlab.com/apt/sosomlab.sources && sudo apt update && sudo apt install nexa-sql 한 번 등록하면 apt upgrade로 새 버전을 받습니다. 저장소에 0.1.9가 있는 것을 2026-10-12에 확인했습니다.
RPM 저장소 (Fedora · RHEL 계열)
sudo curl -fsSLo /etc/yum.repos.d/sosomlab.repo https://pkg.sosomlab.com/rpm/sosomlab.repo && sudo dnf install nexa-sql 갱신은 dnf upgrade.
- 설치 파일 —
sudo apt install ./nexa-sql_<버전>_amd64.deb또는sudo dnf install ./nexa-sql-<버전>-1.x86_64.rpm. - 제거:
sudo dpkg -r nexa-sql또는sudo dnf remove nexa-sql(설정·프로필은~/.config/nexa-sql에 남음).
x86_64 · glibc 2.17 이상. 한글 표시용 fonts-noto-cjk와 X11/Wayland 라이브러리가 권장 의존으로 함께 설치됩니다.
Oracle · SQL Server · PostgreSQL · SQLite에 붙는 올 러스트 단일 실행 파일 SQL IDE와 명령줄 도구 nsql. VAR · EXEC :V · SELECT INTO · PRINT · DEFINE 같은 SQL*Plus 스크립트가 SQL Server · PostgreSQL에서도 그대로 돌고, 같은 엔진·프로필·설정을 GUI와 CLI가 공유합니다. Sublime Text 관습의 편집기, 결과 그리드 편집·엑셀식 필터, 대량 적재까지 담았습니다.
스크린샷
주요 기능
- SQL*Plus식 세션 변수 — 모든 DBMS에서 VAR · EXEC :V := 값/식 · SELECT … INTO :V · PRINT · DEFINE/&치환 · REF CURSOR · 편집기 안 CONNECT. SQL Server에서도 GO를 넘어 같은 변수를 이어 쓰고, 탭 · 연결 공유 · 글로벌 층으로 범위를 나눕니다.
- GUI와 CLI가 같은 엔진 화면에서 돌린 스크립트를 nsql run으로 그대로 배치 실행합니다. 연결 프로필 · 설정 · 북마크를 GUI와 CLI가 공유하고, 종료 코드(0/1/2)로 CI에서 바로 판정합니다.
- 3-OS 동일 화면 · 단일 실행 파일 올 러스트 + 자체 CPU 래스터라이저. Qt · WebView · Electron 없이 Windows · macOS · Linux에서 같은 화면으로 동작하고, 단축키만 각 OS 관례(Ctrl/⌘)를 따릅니다.
- Sublime Text 관습의 편집기 Sublime 기본 단축키 · Goto Anything(Ctrl+P) · 명령 팔레트 · 다중 커서 · 선택 되돌리기 · 북마크 · 파일 검색. 큰 파일은 단계별로 부가 기능만 꺼서 수백 MB 스크립트도 편집합니다.
- 문맥 코드 완성 · Ctrl 객체 링크 테이블 · 컬럼 · 루틴 · 방언별 데이터 타입 제안, FK 기반 JOIN 조건, 시그니처 카드. Ctrl을 누르면 객체 이름이 링크가 되어 코멘트와 동작 버튼(탐색기에서 보기 · 200행 보기) 카드를 띄웁니다.
- 결과 그리드 편집 · 엑셀식 필터 단일 테이블 결과를 셀에서 고쳐 한 트랜잭션으로 적용합니다. 열 머리 타입 배지, 값 목록 필터 · 필터 칩 · OR 모드, 그리드 아래 조건 바로 서버 재조회.
- 객체 탐색기 · DDL 비교 DBMS별 트리(SQL Server는 SSMS식 데이터베이스 · 연결된 서버 · 서버 보안), 객체 용량, 소스 열기와 한 단위 컴파일, Generate SQL, CREATE 문과 서버 객체의 나란히 보기 diff.
- 대량 적재 · 내보내기 CSV · TSV · JSON Lines를 Import 창이나 nsql import로 넣습니다. Oracle 배열 DML · PostgreSQL COPY · SQL Server TDS 벌크를 자동 선택하고, 실패 행을 파일 행 번호로 지목합니다.
- Output 탭 · 트랜잭션 로그 DBMS_OUTPUT · PRINT · RAISE NOTICE · 컴파일 결과를 한곳에. 트랜잭션 로그는 보낸 문장 · 바인드 변수 · 값을 치환한 문장 세 층으로 무엇이 실행됐는지 보여 줍니다.
- 운영 서버 안전장치 서버 유형(DEV · TST · PRD)을 지정하면 운영 서버는 PRD 칩 · 그리드 읽기 전용 · 변경 2단 확인. 객체 삭제 전에는 DDL을 먼저 백업합니다.
- 암호화된 연결 프로필 비밀번호만 ChaCha20-Poly1305로 봉인해 사용자 폴더에 저장합니다(Windows는 DPAPI 기기 키). 저장하지 않은 비밀번호는 실행 중 메모리에서만 암호화 보관해 재접속에 씁니다.
- WASM 확장 · 패키지 저장소 Package Control처럼 저장소의 index.json으로 확장을 찾아 SHA-256 검증 후 설치합니다. 코드 확장은 샌드박스 WASM으로 재시작 없이 로드되며, 공식 저장소에 Rainbow Pairs · SQL 포맷터가 있습니다.
소개
Nexa SQL은 Windows · macOS · Linux에서 똑같이 생기고 똑같이 동작하는 가벼운 SQL 클라이언트(IDE)와 명령줄 도구 nsql을 한 묶음으로 제공합니다. 전부 Rust로 작성한 단일 실행 파일이며 자체 CPU 래스터라이저로 화면을 직접 그려 Qt · WebView · Electron을 쓰지 않습니다. 매일 여러 DBMS를 오가는 DB 개발자와 DBA를 위해 만들었습니다.
대표 기능은 SQL*Plus식 세션 변수를 모든 DBMS에서 쓰는 스크립트 엔진입니다. VAR 선언, EXEC :V := 값 또는 식, SELECT … INTO :V, PRINT, DEFINE과 &치환, REF CURSOR, 편집기 안의 CONNECT가 Oracle뿐 아니라 SQL Server · PostgreSQL · SQLite에서도 같은 문법으로 동작합니다. 엔진이 Oracle에서는 PL/SQL 블록과 OUT 바인드로, SQL Server에서는 sp_executesql과 꼬리 SELECT로, PostgreSQL · SQLite에서는 $n 바인드로 바꿔 보내므로 SQL Server에서도 GO로 나뉜 여러 배치가 같은 변수를 이어 씁니다. 어떻게 바뀌는지는 nsql plan으로 서버 없이 미리 볼 수 있습니다.
편집기는 Sublime Text의 관습을 따릅니다. 기본 단축키 세트가 Sublime과 같고 Goto Anything(Ctrl+P), 명령 팔레트, 다중 커서, 북마크, 파일 검색이 있습니다. 문맥별 코드 완성은 테이블 · 컬럼 · 루틴 · 데이터 타입을 제안하고 외래 키로 JOIN 조건을 만들어 주며, Ctrl을 누르면 객체 이름이 링크가 되어 코멘트와 동작 버튼이 붙은 카드를 띄웁니다. 내장 SQL 포맷터와 WASM 확장 포맷터를 Shift+Alt+F 하나로 씁니다.
결과 그리드는 200행씩 가져와 스크롤에 따라 더 읽고, 행 상한 0이면 도착하는 대로 이어 붙입니다. 열 머리 타입 배지, 엑셀식 값 목록 필터, 그리드 아래 조건 바로 결과를 좁히고, 단일 테이블 결과는 셀을 고쳐 한 트랜잭션으로 적용합니다. 행 식별은 PK → 숨은 키 열 → ROWID/ctid → 전 열 순서로 정하고, 운영(PRD)으로 표시한 서버는 읽기 전용입니다. Output 탭은 DBMS_OUTPUT · PRINT · RAISE NOTICE와 컴파일 결과를, 트랜잭션 로그는 보낸 문장 · 바인드 값 · 값을 치환한 문장을 보여 줍니다.
CLI nsql은 run · shell · export · import · format · explain · plan · conn · cat · config · grep · bookmark · license 13개 명령을 제공합니다. 결과는 stdout, 메시지는 stderr로 나뉘어 파이프와 CI에 바로 쓰이고, csv · json · markdown · sql:merge 등 여러 형식으로 출력합니다. 대량 적재는 Oracle 배열 DML · PostgreSQL COPY · SQL Server TDS 벌크 경로를 자동으로 고르며, 실패하면 파일의 몇 번째 행에서 무슨 오류가 났는지 지목합니다.
연결 프로필은 사용자 폴더에 저장되며 비밀번호만 ChaCha20-Poly1305로 암호화합니다. Windows는 기기 키를 DPAPI로 보호하고, macOS · Linux는 소유자만 읽는 파일로 둡니다. 저장하지 않은 비밀번호는 실행 중 메모리에만 암호화해 들고 있다가 재접속에 씁니다. 앱은 사용자가 지정한 DB 서버에만 접속하고 원격 측정을 보내지 않으며, 라이선스도 오프라인 파일로 확인합니다.
아직 안 되는 것도 밝힙니다. v0.1.9의 드라이버는 Oracle · SQL Server · PostgreSQL · SQLite 넷이며 MySQL과 ODBC(Tibero · Altibase · CUBRID)는 아직 없습니다. Oracle은 Instant Client를 따로 설치해야 하고, PostgreSQL은 TLS를 지원하지 않습니다. 코드 서명이 없어 SmartScreen · Gatekeeper 경고가 뜨며, winget은 등록 전이고 Chocolatey는 0.1.5에 머물러 있습니다. PolyForm Noncommercial 1.0.0 라이선스로 개인 · 비상업 사용은 무료이며 상업 사용은 별도 유료 라이선스(문의 [email protected])가 필요합니다.
릴리스 노트
v0.1.9 2026-10-10 macOS 네트워크·폴더 감시 · DBMS별 `&` 치환 기본값 · Oracle/PostgreSQL 루틴 인자 수정.
추가
- 객체 탐색기 우클릭 메뉴 아이콘(
ui.menu_icons) · 이름 복사 + Shift = 전체 이름 복사(스키마.객체· SQL ServerDB.스키마.객체). - 패키지 멤버 ▸ Generate SQL ▸ Call = 그 오버로드의 이름 지정 바인드 호출문.
변경
&이름치환의 DBMS별 기본값(script.define): Oracle은 SQL*Plus처럼 묻고, 그 밖의 방언은DEFINE/:setvar로 정의한 이름만 바꿔'R&D'에 입력 창이 뜨지 않습니다. CLI도 같은 규칙.
개선 (macOS)
- 네트워크 변경 감지(VPN · Wi-Fi)와 폴더 변경 감시(FSEvents)를 macOS에도 적용. 유휴 시 그리기 표면 정리로 메모리 약 40MB 감소.
수정
- 수십만 행 결과의 스크롤바 드래그 시 위치 계산 넘침 · Oracle 패키지 오버로드 인자 합쳐 보임 · PostgreSQL 함수 Arguments 폴더 비어 있음 · 한글 조합 첫 자음 되돌리기.
v0.1.8 2026-10-09 탭 전용(CONNECT) 세션 자동 재접속 수정.
수정
- 네트워크 복구 뒤 탭 전용 세션이 다시 접속하지 않아
DPI-1010이 반복되던 문제. 비밀번호는 메모리 안 암호화 보관소에서 꺼내 씁니다.
v0.1.7 2026-10-09 점진 결과 표시 · 자연 정렬 · 데이터 타입 완성 · CREATE 문 diff 뷰어.
추가
- 점진 결과 표시(행 상한 0이면 도착하는 대로 이어 붙임 · 묶음 단위 중지/메모리 예산) · 자연 정렬(
ITEM2 < ITEM10). - 방언별 데이터 타입 완성과 사용자 정의 타입 · CREATE 문 ↔ 서버 객체 나란히 보기 diff.
개선
- 서버 상태 전파(네트워크 끊김 → 같은 서버 전체 표시 · 자동 복구) · ■ 두 번 = 강제 중지.
수정
- 32KB가 넘는 CLOB 편집 커밋 · 중지 뒤 재조회가 200행만 오던 문제.
v0.1.6 2026-10-08 Goto Anything · 조건 바 · 엑셀식 값 필터 · 변수 DROP/CLEAR.
추가
- Goto Anything(
Ctrl+P·>명령 ·@심볼 ·%본문) · 글꼴 크기Ctrl+=/Ctrl+-. - 그리드 조건 바 · 엑셀식 값 목록 필터 · 필터 칩 · 열 머리 타입 배지.
VAR x DROP [GLOBAL]·VAR CLEAR [GLOBAL|ALL]·SHOW VARIABLESActive 열 · 외부 파일 변경 토스트(3-way 병합).
수정
- SQL Server 대량 적재의 3부 이름 · Decimal 자릿수 문제.
v0.1.5 2026-10-05 Linux 저장소 · Chocolatey · winget 채널 개시.
배포
- pkg.sosomlab.com APT/RPM 저장소 개시 · Chocolatey 0.1.5 승인 · winget 첫 제출(심사 대기).
추가
- 객체 동작을
Shift+F10· 명령 팔레트에서 실행 · 시그니처 카드 · 필터 값 고르기 · 재조회/OR.
v0.1.4 2026-10-04 DBMS 아이콘 173종 · 화면 언어 "시스템" · 상태바/툴바 편집.
추가
- DBMS 제품 아이콘 173종(밝은/어두운) · 상태바 항목 · 툴바 편집 · 화면 언어 기본값 = 시스템.
개선
- SQL 포맷터:
EXEC·${이름:형식}·N'…'/q'[…]'·::캐스트.
v0.1.3 2026-10-02 Output 탭 · SSMS식 SQL Server 탐색기 · 서버 유형 · 객체 삭제.
추가
- Output 탭과 객체 소스 탭
F5= 한 단위 실행 · 객체 삭제(DDL 백업 후) · 서버 유형(NON · DEV · TST · PRD). - SQL Server SSMS식 탐색기(데이터베이스 · 연결된 서버 · 서버 보안 · DB 용량) · 툴바 작업 단위 전환 · 3부 이름 완성.
v0.1.2 2026-09-30 SQL 포맷터 · Ctrl 객체 링크 · 그리드 필터 · 확장 관리.
추가
- SQL 포맷터(
Shift+Alt+F· 미리보기) · Ctrl 객체 링크와 코멘트 툴팁 · 그리드 필터 · 고속 스크롤 · 객체 용량 · 확장 관리.
알림
- v0.1.1은 릴리스 초안으로만 남아 공개되지 않았습니다(Homebrew는 0.1.0 → 0.1.2).
v0.1.0 2026-09-28 첫 공개 릴리스.
배포
- Windows MSI · macOS pkg/dmg(Universal) · Linux deb/rpm 설치본과 Homebrew Cask. 코드 서명 없음.
추가
- Oracle · SQL Server · PostgreSQL · SQLite 접속 · SQL*Plus식 세션 변수 엔진 · 결과 그리드 · 객체 탐색기 · CLI
nsql.