프로젝트 소개

Huey는 데이터를 브라우저에서 직접 탐색하고 분석하기 위한 무료 오픈소스 정적 웹 애플리케이션입니다. WebAssembly로 컴파일된 DuckDB(DuckDB-WASM)를 활용해 서버리스 고성능 데이터 분석을 제공합니다. ## 주요 기능 - **파일 지원**: `.csv`, `.parquet`, `.json`, `.xlsx`, `.duckdb` 데이터베이스 파일을 로컬 업로드 또는 URL로 로드해 읽습니다. - **피벗 테이블**: 투영, 집계, 필터링, 소계 기능을 갖춘 직관적인 피벗 테이블 빌드 인터페이스를 제공합니다. - **파생 속성**: 날짜/시간 열을 자동으로 연, 월, 분기 등의 시계 계층으로 분해하며, 대소문자 정규화나 첫 글자 인덱싱 같은 문자열 조작도 지원합니다. - **중첩 데이터 분석**: JSON 배열과 STRUCT 타입을 광범위하게 지원해 사전 가공 없이 복잡한 중첩 데이터셋에 대한 즉시 분석이 가능합니다. - **내보내기**: 결과 데이터와 생성된 SQL 쿼리를 파일이나 클립보드로 내보낼 수 있습니다. - **프라이버시 우선**: 정적 웹앱으로서 모든 데이터 처리는 사용자 브라우저 내에서 로컬로 이루어지며, 어떤 데이터도 서버로 업로드되지 않습니다. - **PWA(프로그레시브 웹 앱)**: 브라우저 캐싱 덕분에 오프라인에서도 작동하며 기기에 네이티브 앱처럼 설치할 수 있습니다. - **경량성**: DuckDB-WASM과 Tabler Icons라는 최소한의 의존성만 사용합니다. - **접근성**: 시맨틱 HTML과 ARIA 역할을 사용합니다. ## 제한사항 - **성능**: 브라우저 기반 도구로서 빠르게 작동하지만, DuckDB-WASM은 WebAssembly 런타임에 제한됩니다(이론상 4GB 메모리 한도, 싱글 스레드). 이는 매우 큰 데이터셋의 경우 네이티브 DuckDB 대비 영향을 줄 수 있습니다. - **원격 접근**: URL 기반 데이터원은 HTTP 서버에서 제공되거나 CORS 헤더가 없는 한 Same-Origin 정책으로 인해 차단될 수 있습니다. - **플랫폼**: 데스크탑에서 최적의 경험을 제공하며, 태블릿은 기능적으로 지원되지만 화면 크기 제약으로 인해 모바일 폰 지원은 계획되어 있지 않습니다. - **확장기능**: MySQL, PostgreSQL, Unity Catalog 접근 등 일부 고급 DuckDB 확장 기능은 WASM 버전에서 사용할 수 없습니다. ## 시작하기 사용자는 아무것도 다운로드하지 않고도 https://rpbouman.github.io/huey/src/index.html 의 라이브 데모를 통해 Huey를 즉시 체험할 수 있습니다. 다음 샘플 리포트를 제공합니다: - **CSV**: 공항 운항 운영, 도시 에너지 베치마킹, 소매 판매 데이터. - **JSON**: 중첩 객체 추출을 보여주는 GitHub 공개 이벤트. - **Parquet**: 알파벳 인덱싱 및 대소문자 정규화 그룹화를 보여주는 네덜란드 철도 서비스. 로컬에서 실행하려면 소스 트리를 다운로드한 뒤 `src/index.html`을 브라우저에서 열거나, 오프라인 사용을 위해 데모 사이트에서 PWA를 설치하면 됩니다.