스크립트
00:00:00이것은 dbx입니다. 출시된 지 몇 달밖에 안 된 무료 데이터베이스 클라이언트인데,
00:00:0690개가 넘는 데이터베이스 엔진을 지원하고 벌써 1만 8천 개 이상의 스타를 받았습니다. 심지어 코딩 에이전트가
00:00:12mcp를 통해 저장된 연결을 조회할 수 있게 해주죠. 너무 좋아 보여서 믿기지 않을 정도인데, dbx 파일 하나를 열어보면
00:00:19저장된 데이터베이스 비밀번호가 일반 텍스트로 저장됩니다. 어떤 사람이 6월 12일에 이 문제를 제기했는데
00:00:25여전히 열려 있습니다. 그런데도 이건 제가 본 것 중 가장 빠르게 성장하는 프로젝트 중 하나입니다. 먼저
00:00:30사람들이 왜 이ツール로 갈아타고 있는지 보여드린 다음, dbx.db를 열어보겠습니다.
00:00:40그렇습니다. dbx는 MySQL, Postgres, SQLite, Redis, Mongo 등 말 그대로
00:00:48거의 모든 것을 지원하는 무료 데스크톱 데이터베이스 클라이언트이며, 리드미에 따르면 90개 이상의 엔진을 하나의 창에서 지원합니다. 그리고 가격
00:00:55차이는 무시하기 어렵습니다. 이 때문에 인기가 급상승하고 있죠. Navicat Premium은 한 달에 80달러이거나
00:01:001,600달러 평생 라이선스인 반면 DataGrip은 첫해에 약 110달러, TablePlus는 100달러입니다.
00:01:08정도입니다. 우리는 이런 툴에 비용을 지불하고 있죠. 자, dbx는 무료입니다. 하지만 솔직히 무료라는 점이 가장 멋진 부분은 아닙니다.
00:01:15dbx를 실제로 차별화하는 것은 바로 mcp입니다. 코딩 에이전트가 여러분이 저장한 연결을 통해
00:01:21데이터베이스와 직접 통신할 수 있으므로, 모든 내용을 다시 채팅창에 붙여넣을 필요가 없습니다. 다만 한 가지 주의할 점은
00:01:28mcp 서버가 별도의 바이너리라는 것입니다. dbx를 설치한다고 mcp가 설치되지는 않으므로 직접
00:01:35mcp를 설치해야 합니다. 그리고 dbx만 있는 것은 아닙니다. TablePlus도 mcp를 지원하고, DataGrip도
00:01:43올해 여름에 mcp 툴을 추가했습니다. 따라서 여기서 가장 중요한 핵심은 dbx가 자체 mcp 서버를 갖춘 무료 데이터베이스 GUI라는 점입니다.
00:01:51둘 다 설치한다면 말이죠. 워크플로를 빠르게 만들어주는 코딩 툴이 마음에 드신다면 구독해 주세요.
00:01:56계속해서 영상이 업로드됩니다. 자, 이제 Postgres 데이터베이스를 하나 실행하고 URL을 JSON 파일에 붙여넣은 다음
00:02:02연결되었다고 할 수도 있겠죠. 하지만 실제 앱들은 그렇게 생기지 않았습니다. 우리는 이미 앱용 MySQL,
00:02:07세션용 Redis, 이벤트용 Mongo를 가지고 있습니다. 실제 모습은 이렇습니다. 먼저
00:02:13터미널에서 brew install dbx를 실행한 다음 앱을 실행했습니다. 앱을 실행하면 이 인터페이스가 반겨줍니다.
00:02:19이 인터페이스는 나중에 다시 살펴보고, 일반 터미널을 열어 mcp를 설치할 수 있습니다. 일반적인
00:02:25npm 설치 방식으로도 작동하고, Claude를 통해 직접 설치할 수도 있습니다. 저는 여기서 직접 설치하겠습니다. 짠, 정말 간단하죠.
00:02:33그다음 VS Code에서 SQL과 Mongo를 테스트해 볼 파일들을 만들었습니다. 이 컨테이너들을 실행해 두기 위해
00:02:39Docker Compose로 Docker를 실행합니다. 그런 다음 Redis 키를 로드합니다. 이 모든 것은 제가 그냥
00:02:46테스트해 보려고 준비한 것입니다. 자, 이제 MySQL, Redis, Mongo가 준비되었습니다. 완전히 다른 세 가지 엔진이죠.
00:02:54이 모든 것이 잘 연결되는지 테스트하기 위해 기본 데이터가 모두 들어있습니다. dbx가 이 모든 것을 어떻게 처리하는지
00:03:00확인해 봅시다. 이제 dbx 인터페이스에서 새 연결을 추가할 수 있습니다. 첫 번째는 MySQL입니다. 목록에서 MySQL을
00:03:07선택하고 몇 가지 설정을 추가합니다. 이름을 설정하고, 호스트, 포트,
00:03:14사용자 이름, 그리고 제 파일과 일치하는 비밀번호와 데이터베이스 이름을 입력합니다. 테스트를 실행해 보면
00:03:21통과합니다. 저장하면 끝입니다. 연결 하나가 완료되었습니다. 이제 Redis와 Mongo에 대해서도
00:03:27똑같이 진행하겠습니다. 동일한 설정 과정을 거칩니다. 자, 이름, 호스트, 포트를 입력하고 연결합니다.
00:03:35두 가지 모두 테스트하고 저장합니다. 이제 세 개의 연결을 볼 수 있으므로
00:03:40다시 VS Code로 돌아가거나 터미널을 열어 Claude를 실행합니다. mcp 툴을 등록했기 때문에
00:03:46mcp 명령어를 실행하면 거기에 바로 dbx가 나타납니다. 만약 보이지 않는다면
00:03:52다시 등록해야 합니다. 이제 mcp를 통해 dbx와 대화해 보겠습니다. 먼저
00:03:57dbx 툴을 사용하여 내 데이터베이스 연결을 나열해 줘. 새 연결은 추가하지 마라고 입력합니다. 그러면 우리가 연결한
00:04:06모든 항목이 출력됩니다. 좋습니다, 작은 성공이네요. 그다음에는 demo_mysql의 orders
00:04:12테이블을 설명해 줘. 추측이 아니라 데이터베이스의 실제 컬럼 이름을 원해라고 말합니다.
00:04:20자, 이렇게 정상적으로 작동하며 데이터를 출력하는 것을 볼 수 있습니다. 마지막으로 하나 더 해보겠습니다.
00:04:25세 가지 엔진이 모두 작동하는 것을 보고 싶으므로 Claude에게 이렇게 말합니다. demo_mysql에서 shop orders를 쿼리하고
00:04:31결제 또는 배송된 주문에 대한 sku status와 총 센트(total cents)를 보여줘. 그런 다음 demo_mongo events에서 후드티 이벤트를 찾고
00:04:38demo_redis에서 카트 해시를 읽어와. 이렇게 세 가지 명령을 내립니다. 우리가 연결들을
00:04:45서로 연결하고 있죠. 저는 에이전트에 비밀번호를 붙여넣지 않았고, Claude에게 별도의
00:04:51연결 문자열을 주지도 않았습니다. dbx가 이미 그 연결들을 가지고 있고, Claude는 툴만 사용할 뿐입니다. 하지만 이 프로젝트에는
00:04:58아직 조금 더 살펴봐야 할 부분이 있습니다. dbx를 사용해보면 크기가
00:05:04작습니다. 맥에서 일렉트론을 사용하지 않고 wkwebview를 사용하기 때문이죠. 기본적으로 시스템에 이미 있는 브라우저를 빌려 쓰는 것인데
00:05:11이것은 확실한 장점입니다. 하지만 여기서부터 약간 이상해지기 시작합니다. 다운로드 크기가 작다고 해서
00:05:18실행 중인 프로세스까지 작다는 뜻은 아닙니다. 약 20메가바이트라고 하며 일부
00:05:25설치 프로그램은 정말 그 정도 크기입니다. 좋습니다. 하지만 리눅스는 100메가바이트에 가깝고 맥에서는
00:05:31유휴 상태일 때도 실행 프로세스가 수백 메가바이트를 차지할 수 있습니다. 사용자들은 부하가 걸릴 때
00:05:38몇 기가바이트를 차지한다고 보고하기도 했습니다. 따라서 두 가지 모두 사실일 수 있습니다. 다운로드는 작지만
00:05:44반드시 앱 자체가 작다고 할 수는 없으며, dbx를 대체하려는 툴들과 비교할 때 핵심이 될 수 있습니다.
00:05:50DBeaver를 예로 들어보죠. 무료이지만 자바 기반입니다. DataGrip은 유료로 사용할 의향이 있다면 더 나은 소프트웨어이며,
00:05:57이제 DataGrip에도 mcp 툴이 있습니다. Navicat은 기능이 매우 완벽하지만 가격도 그에 맞춰 비쌉니다.
00:06:04그다음 TablePlus가 있는데, 솔직히 이것이 가장 가까운 비교 대상일 것입니다. 이것도 용량이 작고
00:06:11mcp도 지원하며 운영체제 키체인에 비밀 정보를 저장합니다. 따라서 다른 툴들에 비해 dbx의 장점은
00:06:19다른 툴들을 완전히 압살한다는 게 아닙니다. 그런 건 전혀 아니죠. 매력은 훨씬 단순합니다.
00:06:25무료이고 빠르게 열리며, 추가 바이너리를 설치하면 에이전트 워크플로가 이미 준비되어 있어 매우 직관적입니다.
00:06:31하지만 리드미에서는 멋져 보이지만 자세히 들여다보면 실망스러운 또 다른 숫자를 마주하게 됩니다.
00:06:3690개 이상의 데이터베이스. 4월 출시 당시 dbx는 8개를 지원했고, 5월에는 17개, 20, 30, 40, 50개...
00:06:46어떤 의미인지 아실 겁니다. 계속해서 기능을 추가해 나갔죠. 하지만 솔직히 말해서 그 90개의 데이터베이스 엔진 중에서
00:06:52제대로 테스트가 된 것들이며, 실제로 사람들이 얼마나 쓰고 있을까요? MySQL과 Postgres는
00:06:57많은 사용량을 차지하지만, 나머지 것들은... 제발요, 누가 그런 걸 쓰겠습니까? 소수의 사람들이 쓰겠죠.
00:07:03물론 사용자들이 실제로 활발히 사용하고 버그를 제보하는 엔진은 인기 있는 것들, 즉 MySQL, DuckDB,
00:07:10Postgres 정도입니다. 몇 달 된 프로젝트라는 점을 감안하면 솔직히 그 정도는 넘어갈 수 있겠지만,
00:07:17다음 부분은 훨씬 무시하기 어렵습니다. 바로 dbx가 저장된 연결을 저장하는 파일입니다.
00:07:23로컬 SQLite 데이터베이스인 dbx.db에 저장됩니다. 메모장에 가득 찬 비밀번호 텍스트 파일 같은 것은 아니라는 뜻입니다.
00:07:30dbx.db를 SQLite로 제대로 열어보면 secrets 테이블이 있고, secrets 테이블 내부에
00:07:38비밀번호가 평문(plain text)으로 저장되어 있습니다. 데이터베이스 파일 자체도 잠겨있지 않죠. 이것이 6월 12일에 제기된 1081번 이슈이며
00:07:46여전히 버그로 태그되어 있고 열려 있습니다. 꽤 이상한 일이지만, 여기서 더 이상해집니다.
00:07:51중국어 로컬 폴백 같은 문제는 확실히 고칠 줄 알거든요. SSH 터널을 우회하는 mcp 문제도
00:08:01그들이 해결했습니다. 동기화 중에 비밀 정보가 유출되는 문제도 고쳤고요. 즉, 그들은
00:08:07문제를 아주 빠르게 수정해 나가고 있습니다. 하지만 로컬 자격 증명 저장소 문제는 계속 놓치고 있죠.
00:08:12프로덕션 자격 증명을 dbx에 넣으려고 생각 중이라면, 이 부분이 이번 리뷰에서 가장 중요한 부분입니다. 멋진 mcp
00:08:17데모는 비밀번호를 저장하는 장소를 신뢰할 수 있을 때만 의미가 있으니까요. 이건 정말 큰 경고 신호입니다.
00:08:22사람들이 고장난 부분을 찾아 불만을 제기하면 메인이터는 미친 듯이
00:08:28빠르게 움직여 프로젝트를 공개적으로 개선하고 있습니다. 저 dbx.db 파일만 빼고 말이죠. 그러니 이 툴은 알아서 잘 판단해 사용하시고,
00:08:36조사해 보시기 바랍니다. 조만간 패치되기를 바랍니다. 저는 Better Stack의 조시였습니다. 이런 코딩
00:08:41팁과 트릭이 마음에 드신다면 구독해 주시고, 다음 영상에서 뵙겠습니다.
커뮤니티 글
아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!
이 영상에 대해 글쓰기