왜 나는 또 다른 SQL 클라이언트를 만들었는가 (그리고 오픈소스로 만들었다)

발행: (2025년 12월 12일 오후 09:46 GMT+9)
8 min read
원문: Dev.to

Source: Dev.to

SQL 클라이언트를 또 하나 만들고 오픈소스로 공개한 이유에 대한 표지 이미지

문제점

개발자로서 나의 전형적인 워크플로우는 다음과 같습니다:

  1. 데이터베이스에서 뭔가 확인해야 함
  2. SQL 클라이언트 열기
  3. 기다림… 계속 기다림… (플러그인을 로드하고 있나요?)
  4. 47개의 메뉴 옵션을 뒤져서 쿼리 창 찾기
  5. 간단한 쿼리 작성
SELECT * FROM users LIMIT 10;
  1. 툴바, 상태바, 사용하지 않는 패널 아래에 묻힌 결과 보기

매번 그렇습니다.

나는 기업용 데이터베이스 관리 도구가 필요했던 것이 아니라, 다음을 만족하는 것이 필요했습니다:

  • 빠르게 열림 – 2초 이내, 20초가 아니라
  • 방해되지 않음 – 쿼리 편집기가 바로 전면에
  • 다중 데이터베이스 지원 – PostgreSQL, MySQL, SQL Server
  • 키보드 단축키 제공Cmd+Enter 로 실행, Cmd+K 로 탐색
  • 보기 좋음 – 새벽 2시에도 눈을 피로하게 하지 않는 다크 모드

기존 옵션들

도구빠른가?간단한가?다중 DB 지원?가격
pgAdmin무료
DBeaver무료
DataGrip$229/년
TablePlus$89
Postico$50

패턴:

  • 무료 도구 = 느리고 무겁다
  • 빠른 도구 = 유료 (때로는 여전히 무겁다)
  • 간단한 도구 = 단일 데이터베이스 전용

나는 네 가지를 모두 원했습니다: 빠르고, 간단하고, 다중 데이터베이스를 지원하며, 개인 사용에 한해 무료인 도구.

data‑peek 등장

그래서 직접 만들었습니다. 간단한 철학을 가진 SQL 클라이언트:

기능보다 단순함. 키보드 우선. 빠르게 열고 빠르게 쿼리.

모습

┌─────────────────────────────────────────────────────────────┐
│ [Connection ▾]                              [Settings] [AI] │
├──────────────┬──────────────────────────────────────────────┤
│              │                                              │
│  Schemas     │   SELECT * FROM users                        │
│  └─ public   │   WHERE created_at > '2024-01-01'            │
│     └─ users │   ORDER BY id DESC                           │
│     └─ posts │   LIMIT 100;                                 │
│     └─ ...   │                                              │
│              │   [Cmd+Enter to execute]                     │
│              ├──────────────────────────────────────────────│
│              │   id │ name  │ email          │ created_at   │
│              │   ───┼───────┼────────────────┼────────────  │
│              │   42 │ Alice │ alice@test.com │ 2024-03-15   │
│              │   41 │ Bob   │ bob@test.com   │ 2024-03-14   │
│              │                                              │
└──────────────┴──────────────────────────────────────────────┘

data‑peek 스크린샷

그게 전부입니다. 왼쪽에 스키마 브라우저, 위에 쿼리 편집기, 아래에 결과가 표시됩니다.

핵심 기능

포함된 내용

  • 멀티‑탭 쿼리 편집기 (Monaco 사용, VS Code 편집기 엔진)
  • PostgreSQL, MySQL, SQL Server 지원
  • 스키마 탐색기 – 테이블, 뷰, 컬럼, 저장 프로시저 제공
  • 쿼리 히스토리 – 실행 시간 및 행 수 표시
  • 저장된 쿼리 – 자주 쓰는 SQL을 저장
  • CSV·JSON 데이터 내보내기
  • 인라인 편집 – 결과 테이블에서 직접 행 수정 가능
  • ERD 시각화 – 테이블 관계 확인
  • AI 어시스턴트 – 자연어를 SQL로 변환 (API 키 직접 제공)
  • 다크 모드 – 당연히 포함

제외된 내용 (의도적)

  • 데이터베이스 관리 도구
  • 사용자 관리 UI
  • 백업/복구 마법사
  • 47개의 툴바 버튼
  • 플러그인 시스템
  • 시작 스플래시 화면
  • 기능 과잉

왜 오픈소스인가?

1. 매일 오픈소스를 사용한다

내 경력은 PostgreSQL, React, TypeScript, Node.js, Linux 등으로 이루어졌습니다. 되돌려 주는 것이 자연스럽습니다.

2. 투명성을 통한 신뢰

데이터베이스 클라이언트는 자격 증명과 데이터를 다룹니다. 오픈소스이면 다음을 할 수 있습니다:

  • 코드를 직접 감사
  • 자격 증명이 어떻게 저장되는지 확인
  • 텔레메트리나 데이터 수집이 없는지 검증
  • 불안할 경우 소스에서 직접 빌드

3. 커뮤니티가 더 좋게 만든다

이미 풀 리퀘스트를 통해 내가 몰랐던 버그가 수정되고, 생각지도 못한 기능이 추가되었습니다.

4. 지속 가능한 비즈니스 모델

data‑peek은 개인 사용은 무료입니다. 상업적 사용은 라이선스가 필요해, 다음을 가능하게 합니다:

  • 개인 개발자는 영원히 무료로 사용
  • 혜택을 보는 기업은 금전적으로 기여
  • 지속적인 유지보수와 개선

기술 스택 (미리보기)

  • Electron – macOS, Windows, Linux 크로스‑플랫폼 데스크톱
  • React 19 – 최신 훅과 concurrent 기능을 활용한 UI
  • TypeScript – 엄격 모드, 런타임 오류를 방지
  • Zustand – 눈물 없이 상태 관리
  • Monaco – VS Code를 구동하는 편집기
  • Tailwind CSS 4 – CSS 파일 혼란 없이 스타일링

앞으로의 계획

이번 포스트는 시리즈 첫 번째이며, 앞으로 다음을 다룰 예정입니다:

  • 기술 스택 선택 이유와 결정 과정
  • 다중 DB 지원을 위한 데이터베이스 어댑터 패턴
  • 벤더 락인 없이 AI 기능 추가하기
  • 충돌 감지를 포함한 ERD 시각화 구현
  • 다양한 방언을 지원하는 SQL 파싱 (생각보다 어려움)

사용해 보기

data‑peek은 지금 바로 사용할 수 있습니다:

  • GitHub:
  • 다운로드: macOS, Windows, Linux 바이너리 (릴리즈)
  • 라이선스: MIT (개인 사용 무료)

시도해 보신다면 피드백을 기다립니다. 이슈를 열거나, 토론을 시작하거나, 유용하다면 레포지토리에 ⭐️를 눌러 주세요.

다음 주제: data‑peek 뒤에 숨은 기술 스택 – 2025년 최신 데스크톱 개발

Back to Blog

관련 글

더 보기 »

내 학습 여정의 71일!

다가오는 수요일 로직 작업하기 오늘의 도전 과제는 논리와 SQL 날짜 함수의 재미있는 조합이었습니다. 이름과 약속 날짜가 포함된 테이블을 만들고, 그 다음에 …