Nexa SQL 아이콘

Nexa SQL

v0.1.9

세 OS에서 똑같이 동작하는 경량 SQL 클라이언트(IDE) + CLI nsql — SQL*Plus식 세션 변수를 모든 DBMS에서

사용 설명서 다운로드 GitHub 문서 (Wiki)

모든 데스크톱 OS에서 사용할 수 있어요

설치

Windows

조용한 설치 (MSI)

msiexec /i nexa-sql-0.1.9-windows-x64.msi /qn

GitHub Releases에서 받은 MSI 파일 이름으로 바꿔 실행합니다. 컴퓨터 단위 설치입니다.

  1. GitHub Releases에서 nexa-sql-<버전>-windows-x64.msi를 받아 더블클릭합니다. 설치 중 nsql을 PATH에 추가하는 항목과 .sql 파일 연결(선택)을 고를 수 있습니다.
  2. 코드 서명이 없어 SmartScreen이 막으면 추가 정보 → 실행을 누릅니다. 받은 파일은 sha256sums.txt와 Get-FileHash로 대조하세요.
  3. 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.

  1. 설치 파일 — nexa-sql-<버전>-macos-universal.pkg를 실행하면 /Applications/Nexa SQL.app과 /usr/local/bin/nsql이 설치됩니다. .dmg는 앱을 응용 프로그램 폴더로 끌어 놓습니다.
  2. 직접 받은 앱이 Gatekeeper에 막히면 xattr -dr com.apple.quarantine "/Applications/Nexa SQL.app"을 실행하세요.
  3. 제거: 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.

  1. 설치 파일 — sudo apt install ./nexa-sql_<버전>_amd64.deb 또는 sudo dnf install ./nexa-sql-<버전>-1.x86_64.rpm.
  2. 제거: 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 관습의 편집기, 결과 그리드 편집·엑셀식 필터, 대량 적재까지 담았습니다.

스크린샷

메인 화면 — 객체 탐색기 · 편집기 · 결과 그리드(열 머리 타입 배지 · 조건 바)
메인 화면 — 객체 탐색기 · 편집기 · 결과 그리드(열 머리 타입 배지 · 조건 바)
문맥 코드 완성 팝업
문맥 코드 완성 팝업
변수 창 — 이름 · 타입 · 값 · 층(탭 / 공유 / 글로벌)
변수 창 — 이름 · 타입 · 값 · 층(탭 / 공유 / 글로벌)
결과 그리드 아래 조건 바 — Enter로 서버 재조회
결과 그리드 아래 조건 바 — Enter로 서버 재조회
트랜잭션 로그 — 보낸 문장 · 바인드 변수 · 값 치환 문장
트랜잭션 로그 — 보낸 문장 · 바인드 변수 · 값 치환 문장
Import 창 — 열 매핑 · 배치/커밋 간격 · 파일 미리보기
Import 창 — 열 매핑 · 배치/커밋 간격 · 파일 미리보기

주요 기능

소개

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 라이선스로 개인 · 비상업 사용은 무료이며 상업 사용은 별도 유료 라이선스(문의 kiros33@sosomlab.com)가 필요합니다.

릴리스 노트

v0.1.9 2026-10-10 macOS 네트워크·폴더 감시 · DBMS별 `&` 치환 기본값 · Oracle/PostgreSQL 루틴 인자 수정.

추가

  • 객체 탐색기 우클릭 메뉴 아이콘(ui.menu_icons) · 이름 복사 + Shift = 전체 이름 복사(스키마.객체 · SQL Server DB.스키마.객체).
  • 패키지 멤버 ▸ 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 VARIABLES Active 열 · 외부 파일 변경 토스트(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.