DBDelve는 Rust와 GPUI를 활용하여 개발된 고성능 오픈 소스 DB 클라이언트입니다. 기존의 DBeaver 같은 상용/기존 클라이언트는 메모리 사용량이 과도하다는 단점을 개선했습니다. 특히 패킹된 행(packed rows) 최적화를 통해 대규모 데이터셋 처리 시 뛰어난 성능과 낮은 메모리 점유율을 입증했습니다.
핵심 포인트
DBeaver 대비 월등한 성능을 보여주는 오픈 소스 DB 클라이언트입니다.
Rust와 GPUI를 사용하여 개발되었으며, 높은 안정성과 사용자 경험에 중점을 두었습니다.
패킹된 행 최적화로 대규모 데이터셋에서 메모리 사용량이 40% 감소했습니다.
읽기 전용/쓰기 모드 등 필수 기능을 갖추고 있으며 커스터마이징 가능한 인터페이스를 제공합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN AI Engineering의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
안녕하세요, 저는 Shayan입니다. 몇 달 전부터 성능에 중점을 두고 사용하기 좋은 느낌을 주는 DB 클라이언트인 DBDelve를 개발하기 시작했습니다 (Zed, Ghostty 등 사용자 경험이 훌륭한 도구들의 정신을 이어받아). 제 작업 흐름에서 저는 항상 성능을 중요하게 여겨왔습니다. 특히 오래된 컴퓨터를 사용할 때가 있었는데, 어떤 종류의 무거움(bloat)도 매우 눈에 띄었습니다. DBeaver를 사용했을 때 여러 번 충돌했던 기억이 나고, postGIS를 사용해야 했을 때는 상황이 더욱 악화되었습니다. 저는 필수 개발 도구들을 성능을 고려한 것들(Zed, Ghostty 등)로 마이그레이션했지만, 빠진 것이 DB 클라이언트뿐이었습니다. 현재 모두가 선택하는 주요 옵션들은 DBeaver인데, 제 생각에는 메모리를 많이 사용하고 대부분의 작업에 과도합니다. Datagrid, Beekeeper, TablePlus 같은 다른 옵션들은 전자(electron) 기반이라서 무겁고 메모리 소모가 크거나, 유료이거나 클로즈드 소스입니다.
DBDelve 0.3.6과 DBeaver 25.3.1을 동일한 Postgres 테이블에서 비교했습니다. 각 테스트는 5회씩 수행되었으며 (2026-10-11, M1 Pro, 32 GB), 시간은 액션 발생부터 행이 렌더링될 때까지의 시간이었습니다.
DBDelve DBeaver
Launch 1.1 s 5.2 s
Idle memory 133 MB 606 MB
...
1
2
3
4
5
[1] 의도적으로 전체 1백만 행, 100개 열의 테이블을 메모리에 불러왔으며, 행 제한(row limit)은 해제했습니다. 일반적인 사용 사례는 아닙니다. DBeaver의 힙 제한을 수동으로 높여야 했습니다. 100개 열로 구성된 1백만 개의 행이 로드될 때 스크롤 성능:
이 클라이언트는 대부분의 개발자가 작업 흐름의 90%에서 필요로 하는 기능을 갖추고 있으며, 제가 좋다고 생각한 몇 가지 추가 기능도 포함하고 있습니다: 읽기 전용(Readonly), 읽기-쓰기 및 전체 접근 모드(read-write and Full Access modes), 글래스 테마(Glass themes) (만약 관심이 있다면요, 저도 그렇습니다), 모든 키 바인딩을 커스터마이징할 수 있는 키보드 중심 인터페이스, 프로젝트별 연결 정리 기능
저와 몇몇 동료들이 한 달 넘게 매일 사용해 보았는데, 가장 좋은 피드백은 탐색하기 매우 간단한 UI, 나이에 비해 높은 안정성, 그리고 물론 성능에 관한 것입니다. 제가 이곳에 공유하는 것도 사람들에게 이 프로젝트가 성장할 잠재력이 있다고 들었기 때문에 배포를 시도하고 있기 때문입니다.
여기서 Zed 팀의 GPUI에게 큰 찬사를 보내고 싶습니다. 공식적으로 crates.io에서 크레이트(crate)를 업데이트하지 않더라도 사용하기 매우 쉽습니다. 커뮤니티가 해결책을 찾았는데, 깊이 파고들어야 합니다. 성능은 극도로 뛰어나며, HTML과 같은 구조 덕분에 웹 개발 배경을 가진 사람에게 이해하기 쉬우며 에이전트들이 작성하기도 아주 좋습니다. GPUI 컴포넌트는 또한 사용할 수 있는 좋은 컴포넌트 라이브러리를 갖추는 데 있어 많은 문제를 해결해 줍니다. 현재 GPUI 프로젝트를 시작하는 모든 사람들에게 GPUI-kit은 매우 합리적이라고 생각합니다. 이는 GPUI와 GPUI-component를 하나로 묶고, 실험적이지만 큰 이점을 제공할 수 있는 리테인 모드(retained mode) 같은 최적화를 추가했습니다. 따라서 모든 것을 고려했을 때 기본 방식이 되어야 합니다.
제가 수행한 주요 최적화는 패킹된 행(packed rows)을 사용하여 메모리 오버헤드를 낮춘 것이었고, 이로 인해 대규모 데이터셋에서 메모리 사용량이 40% 감소했습니다 (앱에 로드된 4GB 테이블 기준 8.1GB에서 4.9GB로). 그 외의 모든 것은 주로 Rust와 GPUI를 통해 패키징되었거나 아니면 매우 쉽게 만들었습니다.
한계점: 이 클라이언트는 서명(signed)되거나 공증(notarized)되지 않았습니다. Apple 측의 신원 확인은 악몽 같았지만 곧 서명이 될 예정입니다. 당분간 더 성숙한 클라이언트와 기능 동등성(feature parity)을 기대해서는 안 됩니다. 현재 전반적인 방향은 Zed 방식대로 기능을 추가하는 것이지만, 핵심 워크플로우가 높은 품질로 완성되는 것을 확인한 후에 진행될 것입니다.
직접 사용해 보시길 바랍니다. dbeaver와 tableplus에서 연결(connections)을 가져올 수 있습니다.