Trench

Trench

Frigade · 코딩

Trench는 Frigade가 공개한 무료 오픈소스 분석 인프라로, ClickHouse와 Kafka 위에서 이벤트를 실시간으로 추적하며 쿠키 없이 동작하도록 설계됐다.

Trench 미리보기

Trench 소개

What Is Trench

Trench는 직접 호스팅하고 자기 계정 아래에 두는 이벤트 추적 시스템이다. 사용자가 앱 안에서 한 일, 예컨대 가입하거나 결제를 마치거나 기능을 여는 행동을 기록하고, 나중에 그 데이터를 SQL이나 REST 엔드포인트로 실시간 조회할 수 있게 해준다. 바닥에서는 Apache Kafka가 들어오는 스트림을 받아내고 ClickHouse가 질의에 빠르게 답한다.

Frigade 팀이 자사 이벤트 파이프라인을 규모 있게 돌리려고 만들었고, 이후 오픈소스로 공개했다. 호스팅형 분석 도구의 청구서를 보며 왜 내 사용자를 추적하는 데 이렇게 많은 비용이 드는지 의아했던 적이 있다면 이 점이 의미가 있다. Trench가 겨냥하는 대상은 모든 이벤트를 남의 서버로 보내지 않고 Segment식 추적을 원하는 개발자다.

무엇을 얻는지를 결정하는 두 가지가 있다. 첫째, Trench는 Segment API를 따르므로 이미 작성한 track, identify, group 호출이 엔드포인트만 바꾸면 대개 그대로 동작한다. 둘째, Kafka와 ClickHouse를 안에 담은 단일 Docker 이미지로 배포되므로 설치는 짧지만 실제 데이터베이스를 운영하게 된다. 운영 노드에는 최소 4 GB 메모리와 4개 CPU 코어를 잡아야 한다.

Getting Started

  1. FrigadeHQ/trench 저장소를 클론하고 apps/trench 폴더를 연다.
  2. 예시 환경 파일을 복사하고 Docker Compose로 스택을 띄운다. 로컬 Kafka와 ClickHouse도 함께 뜬다.
  3. 4000번 포트의 서버를 열고 환경 파일에서 공개 키와 개인 키를 확인한다.
  4. events 엔드포인트로 userId, track 같은 type, properties 객체를 담아 이벤트를 보낸다.
  5. events 엔드포인트로 데이터를 읽어 오거나, queries 엔드포인트로 SQL 문을 실행한다.

제품 정보

Trench의 요금, 지원 플랫폼, 성능을 한눈에 확인해 보세요.

무료 플랜예
유료 플랜Usage-based Cloud, custom Enterprise
플랫폼Web (self-hosted) and Cloud
개발사Frigade
카테고리코딩
출시일Nov 2024
최근 업데이트Apr 2026
웹사이트 방문 수73
웹사이트 글로벌 순위N/A
API 제공 여부예

추천 대상

이 도구가 가장 잘 맞는 사용자, 작업, 상황입니다.

사용자

  • 호스팅 청구서 없이 Segment식 추적을 원하는 개발자. Trench는 같은 API를 쓰므로 이미 가진 track, identify 호출이 엔드포인트만 바꾸면 대개 그대로 쓸 수 있다.
  • 데이터 규칙이 엄격한 팀. 모든 이벤트가 자기 ClickHouse 인스턴스에 남아, 제3자가 원본 데이터를 갖지 않는다는 점에서 GDPR과 맞물린다.
  • 이미 Kafka를 운영하는 엔지니어. 스택이 익숙한 도구 위에 서 있어, 나머지 파이프라인을 다루듯 처리량을 조정할 수 있다.

작업

  • 프로덕트 이벤트 추적. userId, 이벤트 이름, 속성을 보내면 몇 초 뒤 질의로 다시 읽을 수 있다.
  • SQL로 행동 조회. ClickHouse 저장소에 문장을 던져 가입 수를 세거나 활동을 묶는다. 데이터를 밖으로 내보낼 필요가 없다.
  • 이벤트를 다른 도구로 전송. 웹훅을 다른 서비스로 향하게 하면 새 이벤트가 팀이 이미 쓰는 곳으로 들어간다.

활용 상황

  • 프로덕트 분석 대시보드 만들기. 추적한 사용자마다 비용을 내는 대신 원본 이벤트를 자기 화면으로 끌어온다.
  • 컴플라이언스 담당자를 안심시키기. 개인 데이터가 자기가 통제하는 인프라를 떠나지 않는다는 점을 보여준다.
  • 사용자 맥락이 필요한 언어 모델 흐름을 시험 삼아 만들기. 저장된 이벤트를 조회해 이미 돌리는 검색 단계에 넘긴다.

주요 기능

Segment 호환 추적 API

Trench는 track, identify, group 호출에서 Segment API를 따른다. 앱이 이미 이 형식으로 이벤트를 보낸다면 Trench 엔드포인트로 향하게 하고 기존 코드를 그대로 둘 수 있다. 이 호환성이 이전 작업을 재작성이 아니라 몇 시간으로 줄여 주는 핵심 이유다.

단일 Docker 이미지 배포

시스템 전체가 Kafka와 ClickHouse를 품은 운영용 Docker 이미지 하나로 온다. Compose 명령을 한 줄 실행하면 동작하는 스택이 나오고, 세 서비스를 손으로 잇지 않아도 된다. 대가는 하드웨어다. 운영 노드에는 최소 4 GB 메모리와 4개 코어를 잡아야 한다.

Kafka와 ClickHouse의 실시간 처리량

Kafka가 들어오는 스트림을 받아내고 ClickHouse가 질의에 답한다. 단일 노드에서도 초당 수천 개 이벤트를 소화하며, 같은 두 도구는 Airbnb, Spotify 같은 기업에서 수조 건의 이벤트를 처리한다. 개발자 한 명이나 작은 팀이라면 확장이 필요해지기 전까지 노드 하나로 꽤 버틴다.

SQL과 REST 조회

데이터를 읽는 데 별도 BI 도구는 필요 없다. events 엔드포인트는 저장된 이벤트를 JSON으로 돌려주고, queries 엔드포인트는 ClickHouse 저장소에 원시 SQL을 실행한다. 하루 단위 활성 사용자를 세거나 이벤트를 속성으로 묶는 일은 짧은 문장 하나로 끝나며 내보내기 작업이 아니다.

웹훅 전송 대상

속도를 제한한 웹훅이 새 이벤트를 다른 서비스로 밀어낸다. 덕분에 Trench는 스택 가운데에 앉아 이벤트를 받아 CRM, 데이터 웨어하우스, 알림 도구로 넘긴다. 시스템 사이로 데이터를 옮기려고 자체 중계기를 짤 필요가 없다.

장단점

장점

  • MIT 라이선스 오픈소스라 코드를 읽고 고칠 수 있다.
  • 자체 호스팅은 무료이고 사용량 제한도 없어 이벤트 단위 과금을 피한다.
  • Segment API를 따르므로 기존 추적 코드가 그대로 동작하는 경우가 많다.
  • 데이터가 자기 ClickHouse 인스턴스에 남아 GDPR 대응에 도움이 된다.
  • Docker 이미지 하나가 Kafka와 ClickHouse를 묶어 설치 단계를 줄인다.

단점

  • Kafka와 ClickHouse 스택을 운영하므로 운영 노드에 최소 4 GB 메모리와 4개 코어가 필요하다.
  • 대시보드가 기본 포함되지 않는다. 그래프를 보려면 Grafana를 연결하거나 화면을 직접 만들어야 한다.
  • 직접 운영하는 만큼 업데이트, 백업, 가동률 유지도 스스로 감당해야 한다.
  • 관리형 Cloud 옵션은 있지만 고정 가격을 공개하지 않아 견적을 요청해야 한다.

자주 묻는 질문

Trench는 자기 제품 안의 이벤트를 추적해 실시간 분석용으로 저장한다. Segment 규격을 따르는 API로 이벤트를 보내고, 이후 SQL이나 REST 호출로 조회해 사용자가 무엇을 하는지 확인한다.