DuckDB와 함께 Local-First 데이터 탐색 도구 구축

발행: (2026년 1월 4일 오후 03:48 GMT+9)
8 min read
원문: Dev.to

Source: Dev.to

whtsht

무엇

저는 streaksight라는 GUI‑기반 데이터 분석 도구를 개발하고 있습니다. 이 도구는 로컬 머신에서 실행됩니다.

이 프로젝트는 오픈 소스이며 GitHub에서 확인할 수 있습니다.

목표는 데이터를 인사이트로 전환하는 데 필요한 시간을 최소화하는 것입니다. streaksight를 사용하면 데이터를 로드하고, 분석하고, 시각화하는 모든 작업을 하나의 로컬 애플리케이션에서 할 수 있습니다.

참고: streaksight는 아직 진행 중인 작업이며 아직 출시되지 않았습니다.

할 수 있는 일

데이터 수집

데이터 가져오기 스크린샷

파일을 단순히 선택하면 streaksight가 스키마를 자동으로 감지하고 데이터를 내장 데이터베이스에 가져옵니다. 현재 CSVJSON 형식을 지원합니다. 앞으로는 다음 데이터 소스들을 지원할 예정입니다:

  • AWS S3와 같은 객체 스토리지
  • MySQL과 같은 데이터베이스
  • Google Analytics와 같은 SaaS 플랫폼

노드를 이용한 쿼리 빌딩 및 시각화

쿼리 빌딩 스크린샷

차트 스크린샷

노드를 연결하여 쿼리를 구성할 수 있습니다. 실행 결과가 실시간으로 표시되어 데이터를 반복적으로 탐색하고, 쿼리를 다듬으며 인터랙티브하게 인사이트를 얻을 수 있습니다.

대상

  • 자신만의 제품을 운영하는 인디 개발자와 소규모 팀
  • 로컬에서 소규모에서 중간 규모의 로그 또는 이벤트 데이터를 분석하고자 하는 사람들
  • 전체 규모 데이터 플랫폼을 구축하기 전에 데이터의 가치를 검증하고자 하는 팀

Why

저는 직장에서 로그를 조사하던 중 DuckDB를 처음 접했습니다. 실행 속도가 놀라울 정도로 빠르고 강한 인상을 남겼습니다.

그 경험 이후, 저는 DuckDB 생태계를 더 면밀히 팔로우하기 시작했으며, 특히 MotherDuckDuckLake 같은 프로젝트에 주목했습니다.

동시에 저는 BigQuery 운영을 담당했으며, 비용 최적화 작업도 수행했습니다. 이 작업을 통해 데이터 플랫폼을 구축하고 운영하는 기술에 점점 더 관심을 갖게 되었습니다. 데이터 인프라와 관련된 다양한 SaaS 및 OSS 프로젝트를 탐색하면서 몇 가지 반복되는 문제들을 발견했습니다.

Problem 1: Setup complexity

대부분의 데이터‑인프라 OSS 프로젝트는 단일 책임에 집중하고 서로 결합될 수 있도록 설계됩니다.

  • ETL: Airbyte, Apache NiFi, …
  • 쿼리 엔진: DuckDB, ClickHouse, …
  • 시각화: Redash, Metabase, Apache Superset, …

이러한 분리는 확장성과 안정성을 높여 주지만, 설정 및 유지 관리 비용도 증가시킵니다. 적절한 도구를 선택하고 이를 연결하는 과정은 특히 소규모 데이터 분석에서는 눈에 띄는 오버헤드를 초래할 수 있습니다.

Problem 2: Difficulty of building correct queries

AI의 부상으로 SQL 쿼리 작성은 훨씬 쉬워졌습니다. 그러나 그 쿼리를 디버깅하고 실제로 의도한 결과를 도출하는지 검증하는 일은 여전히 어렵습니다.

쿼리는 일련의 집합 연산과 조인으로 구성됩니다. AI가 생성한 쿼리를 빠르게 검증하기 위해서는 서브‑쿼리나 조인 결과와 같은 중간 결과를 사용자가 확인할 수 있는 인터페이스가 강력히 필요하다고 느꼈습니다.

streaksight는 여러 도구를 결합하지 않고도 로컬 환경에서 빠른 반복적 쿼리 실험과 결과 검사를 가능하게 함으로써 이러한 문제들을 해결합니다.

기술 스택

설계 원칙: 단일 머신에서 효율적으로 실행

  • DuckDB – 단일 머신에서 뛰어난 성능을 제공하는 OLAP‑중심 데이터베이스.
  • Tauri – 크로스‑플랫폼 데스크톱 애플리케이션을 구축할 수 있게 해 주며, 가벼운 바이너리를 생성하고 프런트엔드를 웹 기술로 빌드할 수 있게 함.
  • Deno.js – Rust‑기반 프로젝트와 잘 통합되는 JavaScript 런타임; 애플리케이션을 재빌드하지 않고 사용자가 맞춤 JavaScript 플러그인을 추가할 수 있게 사용.
  • Singer.io – ETL 플러그인 인터페이스 설계 시 참고용으로 사용.

로드맵

데이터 소스가 매우 다양하기 때문에 커넥터의 유연성이 핵심 초점입니다. 다음 단계는 지원되는 커넥터 수를 늘리고 플러그인 인터페이스를 최종 확정하는 것입니다. 궁극적으로 사용자가 JavaScript로 맞춤형 커넥터를 작성하여 다양한 데이터 소스에 직접 연결할 수 있도록 하는 것이 목표입니다.

또한, 다음 기능들을 탐색하고 있습니다:

  • 인사이트 공유
    • 대시보드
  • AI 통합
    • 모델 컨텍스트 프로토콜
  • 클라우드 통합

이러한 기능들의 범위와 방향은 실제 사용 사례를 기반으로 다듬어질 것입니다.

최종 말씀

이 프로젝트가 흥미롭다면 GitHub에서 별표를 눌러 주시면 정말 감사하겠습니다.

프로젝트에 대한 질문이나 피드백이 있으면 언제든지 여기에서 토론을 시작해 주세요:
https://github.com/whtsht/streaksight/discussions

Back to Blog

관련 글

더 보기 »

데이터 사이언스 스킬 향상 38일 차

데이터 시각화 새해 복 많이 받으세요 🥂 데이터 시각화에서 나는 단순히 “차트를 그리는” 것이 아니었습니다. 데이터 가져오기 나는 관계형 데이터베이스에 발을 들였습니다: > Insert relationa...