타입스크립트(TypeScript) 환경에서 데이터 웨어하우스 클릭하우스(ClickHouse)를 사용하는 개발자들을 위한 새로운 도구 '하이프쿼리(hypequery)'가 등장했습니다. 하이프쿼리는 타입 안정성을 갖춘 쿼리 빌더와 코드 기반의 시맨틱 레이어를 제공하여, 기존의 수동 SQL 작성 및 타입 관리의 어려움을 해소하고 분석 워크플로우를 혁신합니다. 별도의 플랫폼이나 런타임 없이 애플리케이션 내에서 직접 SQL을 생성하고 실행할 수 있는 라이브러리 형태로 제공됩니다.
기존에는 타입스크립트 개발자들이 클릭하우스 공식 클라이언트를 사용할 때, 원시(raw) SQL 문자열을 직접 작성하고 결과를 `any` 타입으로 캐스팅해야 하는 번거로움이 있었습니다. 이로 인해 스키마 불일치, 오타, 런타임 오류가 발생하기 쉬웠고, 매출(revenue)이나 활성 사용자(active users) 같은 핵심 지표의 정의가 여러 대시보드, API 핸들러, 작업에 복제되면서 비즈니스 의미가 왜곡되는 문제도 있었습니다. 하이프쿼리는 이러한 문제를 해결하기 위해 두 가지 핵심 레이어를 제공합니다. 첫 번째는 `@hypequery/clickhouse`로, 실시간 클릭하우스 스키마로부터 타입스크립트 타입을 생성하고, 테이블 이름, 컬럼, 필터, 결과까지 모두 타입이 지정되는 유창한 쿼리 빌더를 제공합니다. 두 번째는 `@hypequery/datasets`으로, 차원(dimensions), 측정값(measures), 지표(metrics), 테넌트(tenant) 규칙, 시간 단위(time grains) 등을 코드에서 한 번 정의하고 모든 곳에서 재사용할 수 있는 코드 우선 시맨틱 레이어를 구현합니다.
하이프쿼리는 개발자들이 수동으로 타입을 유지하거나 YAML 파일에 분석 정의를 분산시키는 대신, 타입스크립트 코드 내에서 공유 가능한 분석 정의를 중앙 집중화할 수 있도록 돕습니다. 이를 통해 스크립트, API, 리액트(React) 앱, 에이전트 등 다양한 환경에서 동일한 쿼리 정의를 재사용할 수 있으며, 다중 테넌시(multi-tenancy) 및 인증(authentication) 준비도 용이합니다. 또한, 입력, 출력, SQL 동작을 명시적으로 정의하여 테스트 및 추론이 쉬워집니다. 이러한 접근 방식은 데이터 분석의 정확성과 일관성을 높이고, 개발 생산성을 크게 향상시킬 것으로 기대됩니다. 개발자는 로컬에서 쿼리 빌더로 시작하여 필요에 따라 HTTP 라우트를 추가하는 방식으로 점진적으로 확장할 수 있습니다.