Rybbit Analytics: 쿠키 없이 자체 호스팅하는 Google Analytics 대안

Rybbit이란 무엇이며, 어떻게 작동하고, 어떻게 설정하나요?
Rybbit은 쿠키를 설정하지 않고 방문자를 집계하는 오픈소스 웹 애널리틱스 도구입니다. 아직 역사가 짧은 프로젝트입니다. 버전 1.0이 2025년 5월 30일에 나왔고 2.0이 2025년 10월에 뒤를 이었으며, 2026년 10월 15일 현재 최신 릴리스는 2026년 9월 12일에 태그된 2.9.1입니다. 코드는 AGPL-3.0 라이선스로 GitHub에 공개되어 있습니다. 개발사인 미국 기업 Tomato.gg LLC는 호스팅 버전도 판매합니다.
저희는 c9group.dev에서 Rybbit을 사용하며, Mautic과 마찬가지로 자체 서버에 직접 호스팅해 운영하고 있습니다. 방문자가 페이지에서 실제로 무엇을 했는지 알고 싶을 때 가장 먼저 여는 도구입니다. 이 가이드에서는 Rybbit이 잘하는 것과 부족한 점, 그리고 설정 방법을 다룹니다.
작동 방식은 이렇습니다. 작은 스크립트 script.js가 Rybbit 서버에서 로드되어 페이지뷰와 이벤트를 다시 그 서버로 보냅니다. 이벤트는 바로 이런 종류의 집계를 위해 만들어진 컬럼형 데이터베이스인 ClickHouse에 쌓입니다. 계정, 사이트, 설정은 Postgres에 저장됩니다. 대시보드는 Next.js 앱이고, 그 뒤의 API는 Node.js 서버입니다.
Rybbit 사용의 주요 이점은 무엇인가요?
쿠키 없음
Rybbit은 쿠키를 설정하지 않습니다. 서버는 IP 주소와 브라우저 사용자 에이전트를 해시한 값으로 재방문자를 식별하며, 버전 2.8부터는 방문 도중 IP 주소가 바뀐 방문자도 브라우저의 특성을 대조해 한 사람으로 유지합니다. 반면 GA4는 쿠키를 설정하고 동의를 기다리기 때문에, 배너를 무시하거나 거부한 방문자는 모두 보고서에서 빠집니다(Google의 동의 모드가 그중 일부를 모델링으로 채워 넣습니다).
쿠키가 없다고 해서 동의 문제가 사라지는 것은 아닙니다. 2.9 추적 스크립트는 설정과 관계없이 방문할 때마다 무작위 방문자 ID를 브라우저의 로컬 스토리지에 기록합니다. 이 ID는 Rybbit의 기능 플래그를 사용할 때만 서버로 전송됩니다. e프라이버시 지침의 동의 규정(제5조 제3항)은 쿠키뿐 아니라 방문자의 기기에 저장되는 모든 정보에 적용되며, 유럽정보보호이사회(EDPB)의 가이드라인 2/2023은 이 규정을 넓게 해석합니다. GDPR도 적용됩니다. IP 주소는 여전히 서버에 도달하고, Rybbit 자체 문서도 기본 해시 ID가 “GDPR상 개인 식별 데이터를 저장하는 것으로 간주될 수 있다”고 밝히고 있습니다.
따라서 방문자가 배너에 응답하기 전에 Rybbit을 실행해도 되는지는 개인정보 처리방침을 책임지는 사람이 판단할 문제이지, “쿠키리스”라는 말 한마디로 정해지는 문제가 아닙니다. 수집 범위를 좁히는 설정은 아래 프라이버시 설정에서 다룹니다.
바로 활용할 수 있는 세션 데이터
모든 세션에는 유입 경로, UTM 파라미터, 채널, 세션 시간, 페이지뷰가 담깁니다. 자동 수집을 켜면 버튼 클릭, 양식 제출, 입력값 변경, 텍스트 복사, 외부 링크 클릭도 집계합니다. “방문자가 관심을 보였을까?”라는 질문의 답이 추측이 아니라 숫자가 됩니다.
유료 트래픽을 사고 있다면, 예산을 늘리기 전에 그 방문자들이 페이지를 읽었는지 아니면 1초 만에 떠났는지를 여기서 확인할 수 있습니다.
무료 버전에 포함된 리플레이, 퍼널, 여정
자체 호스팅 버전에는 세션 리플레이, 퍼널, 사용자 여정, 리텐션, 목표, 오류 추적, 웹 바이탈이 포함됩니다. Rybbit이 다른 도구와 가장 크게 다른 점이 바로 이것입니다. Matomo는 자체 호스팅 설치용 히트맵과 세션 녹화를 유료 플러그인으로 판매합니다. Plausible은 무료 Community Edition에서 퍼널과 사용자 여정을 제외했습니다.
가벼운 운영
Rybbit은 RAM이 2GB 이상인 서버를 요구합니다. VPS 한 대로 전체 스택이 돌아가며, Rybbit 자체 문서는 자체 호스팅 설정에 30~120분이 걸린다고 안내합니다.
API와 MCP 서버
대시보드에 있는 모든 내용은 개인 API 키를 사용해 REST API로 가져올 수 있습니다. Rybbit은 MCP 서버도 제공하므로, Claude Code나 Cursor 같은 AI 어시스턴트가 수치를 직접 조회할 수 있습니다. 둘 다 자체 호스팅 인스턴스에서도 작동합니다.
Rybbit 설정 방법
Rybbit Cloud
가장 빠른 방법입니다. 가입하고, 도메인을 추가하고, 스크립트 태그 하나를 붙여 넣으면 됩니다. 클라우드는 분석 데이터를 독일과 핀란드에 있는 Hetzner 서버에 저장합니다. 요금제와 가격은 아래 비용 고려사항에 정리했습니다.
WordPress
공식 플러그인은 없고, 없어도 됩니다. Rybbit의 WordPress 가이드는 WPCode 같은 플러그인이나 자식 테마의 functions.php 또는 header.php를 통해 스크립트 태그를 추가하는 방법을 안내합니다. WordPress.com에서는 Business 요금제 이상이 필요합니다.
Docker로 자체 호스팅
소규모: 스타트업 & 작은 사이트
필요한 것:
- RAM이 2GB 이상인 VPS. Rybbit은 x86_64 환경의 Ubuntu 24 LTS에서 테스트되었으며, ARM 서버는 ClickHouse의 요구 사항 때문에 ARMv8.2-A 이상이어야 합니다.
- Docker Engine과 Git.
- 서버를 가리키는 A 레코드가 설정된 서브도메인(예:
analytics.example.com). 브라우저는 일반 HTTP로 제공되는 추적 스크립트를 차단하므로 HTTPS가 필수입니다. 도메인이 Cloudflare에 있다면 레코드를 DNS only로 설정하거나, SSL 모드를 Full 또는 Full (strict)로 설정하세요.
그런 다음 아래 명령을 실행합니다:
git clone https://github.com/rybbit-io/rybbit.git
cd rybbit
chmod +x *.sh
./setup.sh analytics.example.com
스크립트가 .env 파일을 작성하고 ClickHouse, Postgres, Redis, 백엔드, 대시보드, 그리고 TLS 인증서를 발급받는 Caddy까지 컨테이너를 시작합니다. https://analytics.example.com/signup을 열고 첫 계정을 만드세요.
그다음에는 들어온 문을 잠가야 합니다. .env에 DISABLE_SIGNUP=true를 추가하고 ./restart.sh를 실행하면, 낯선 사람이 여러분의 서버에 계정을 만들 수 없게 됩니다.
서버에 이미 Traefik이나 Nginx 같은 리버스 프록시가 있다면 ./setup.sh analytics.example.com --no-webserver를 실행하세요. Caddy가 빠지고, TLS 종료는 기존 프록시가 맡습니다.
업데이트하려면 git pull 후 ./update.sh를 실행합니다.
대규모: 대형 사이트 & 에이전시
백엔드는 CLICKHOUSE_HOST, POSTGRES_HOST, REDIS_HOST를 환경 변수에서 읽으므로, 애플리케이션을 건드리지 않고도 각 데이터베이스를 별도 서버로 옮길 수 있습니다. 규모가 커질수록 늘어나는 쪽은 ClickHouse입니다. 모든 이벤트를 보관하고, 녹화한다면 모든 리플레이도 보관합니다. 가장 먼저 ClickHouse에 빠른 SSD 스토리지를 갖춘 전용 머신을 마련해 주세요.
AWS에서는 백엔드와 대시보드 이미지를 여느 컨테이너처럼 ECS Fargate에서 실행하고, ClickHouse는 EC2 인스턴스에, Postgres는 RDS에 둡니다. 세션 리플레이는 두 ClickHouse 테이블에 걸린 TTL에 따라 기본 30일간 보관되며, 이 기간은 줄일 수 있습니다.
이 모든 것을 직접 운영하고 싶지 않다면, Rybbit의 Enterprise 요금제로 전용 인스턴스나 온프레미스 설치를 이용할 수 있습니다.
추적 스크립트
<script src="https://analytics.example.com/api/script.js?siteId=YOUR_SITE_ID" async></script>
사이트 ID는 URL로 전달하세요. 예전 방식인 data-site-id 속성도 여전히 작동하지만, WP Rocket 같은 최적화 플러그인은 스크립트 태그를 다시 만들면서 data- 속성을 지워 버립니다.
싱글 페이지 앱에는 추가 작업이 필요 없습니다. 스크립트는 History API 내비게이션을 따라가며, 경로가 바뀔 때마다 500ms 디바운스를 거쳐 페이지뷰로 기록합니다. #/로 시작하는 해시 경로도 추적됩니다.
직접 정의한 이벤트는 다음과 같이 보냅니다:
window.rybbit.event('quote_requested', { plan: 'pro' });
이벤트 이름은 최대 256자, 속성(문자열과 숫자)은 최대 2KB까지 가능합니다.
Rybbit의 주요 기능
애널리틱스
- 세션, 고유 사용자, 페이지뷰, 이탈률, 세션 시간
- 라이브 지구본을 보여 주는 실시간 대시보드
- 국가, 지역, 도시 단위의 위치 정보
- 15개가 넘는 차원에 걸친 필터링과 세그먼트 저장
- 속성을 붙일 수 있는 커스텀 이벤트
- 목표, 퍼널, 사용자 여정, 리텐션
- 처리되지 않은 JavaScript 오류 추적
- 웹 바이탈
- 봇 탐지 및 필터링
행동
- 세션 리플레이(모든 입력값은 기본적으로 마스킹)
- 클릭, 양식 제출, 복사, 외부 링크 자동 수집
- 사용자 프로필(로그인한 사용자에 대해
rybbit.identify()를 호출하면 이름과 특성까지 표시)
공유 & 통합
- 사이트와 조직 무제한, 조직별 팀 구성
- 공개 대시보드와 임베드 가능한 위젯
- REST API와 MCP 서버
- Google Search Console 통합(자체 호스팅에서는 Google OAuth 자격 증명 필요)
- Plausible, Umami, Simple Analytics에서 데이터 가져오기
프라이버시 설정
- User ID Salting(사용자 ID 솔팅): 방문자 해시를 매일 바꾸므로, Rybbit은 24시간이 지나면 누가 누구였는지 잊어버립니다. 대가가 분명히 있습니다. 긴 기간의 고유 사용자 수가 부풀려지고, 리텐션 보고서는 의미가 없어집니다. 나중에 바꾸면 추세선이 끊기므로 출시 전에 정하세요.
- Track IP Address(IP 주소 추적): 직접 켜지 않는 한 꺼져 있습니다. Rybbit 문서는 IP 저장을 “GDPR을 준수하지 않는다”고 표현합니다.
- 세션 리플레이: 사이트 단위 설정이며, 켜면 모든 방문자가 녹화됩니다. 동의한 방문자만 녹화하려면, 나머지 방문자에게 내보내는 스크립트 태그에
data-replay-sample-rate="0"을 추가하세요. - 리플레이 마스킹: 요소를 녹화에서 빼려면
rr-block클래스를, 텍스트를 별표로 바꾸려면rr-mask클래스를 추가합니다. - 제외: IP 또는 IP 대역, 국가, 경로, 호스트 이름, 사용자 에이전트 기준으로 제외할 수 있으며, 무엇이든 저장되기 전에 서버에서 적용됩니다.
왜 Rybbit을 다른 솔루션 대신 선택해야 하나요?
vs. Google Analytics 4
- 커버리지: 동의 전에 로드해도 되는 경우라면, 배너에 끝내 응답하지 않는 방문자까지 집계합니다(위의 쿠키 없음 참조)
- 데이터 위치: 여러분의 서버, 또는 EU에서 호스팅되는 Rybbit 클라우드
- 행동 상세: GA4에는 없는 세션 리플레이, 그리고 모든 세션을 그대로 읽을 수 있는 기록
- GA4가 앞서는 부분: Google Ads 연동, 리마케팅용 잠재고객, 데이터 기반 기여 분석
vs. Matomo
저희는 둘 다 구축해 봤습니다. 저희 Matomo 가이드를 참고하세요.
- Matomo는 더 오래되었고 범위도 넓습니다: 전자상거래 보고서, 태그 관리자, 방대한 플러그인 라이브러리, 그리고 Google Analytics의 과거 데이터를 가져오는 도구가 있습니다. PHP와 MySQL로 동작하므로 거의 모든 호스팅에서 돌아갑니다.
- Rybbit은 무료로 더 많이 제공합니다: 유료 플러그인 없이 쓰는 리플레이와 퍼널, 그리고 더 단순한 대시보드.
- 쿠키: Rybbit은 쿠키를 전혀 설정하지 않습니다. Matomo는 기본적으로 퍼스트파티 쿠키를 사용하며, 쿠키 없이 동작하도록 설정할 수도 있습니다.
- 과거 데이터: Rybbit은 Google Analytics나 Matomo에서 데이터를 가져올 수 없습니다.
온라인으로 판매하거나 GA의 과거 데이터가 필요하다면 Matomo를 선택하세요. 쿠키 없이 방문자가 무엇을 하는지 보고 싶다면 Rybbit을 선택하세요.
vs. Plausible
- 둘 다 쿠키를 설정하지 않으며, 둘 다 AGPL 라이선스입니다.
- Plausible의 무료 Community Edition에는 퍼널, 사용자 여정, 전자상거래 매출 목표, SSO, 사이트 API가 빠져 있고, 릴리스는 1년에 두 번입니다.
- Plausible에는 세션 리플레이가 없습니다.
- 둘 중 더 단순한 쪽은 Plausible입니다. 핵심 지표를 한 페이지로 보는 것만으로 충분하다면, 그 점은 Plausible의 장점입니다.
Rybbit의 부족한 점
- 아직 역사가 짧습니다. 1.0이 2025년 5월에 나왔고 릴리스가 잦습니다. 업데이트할 때마다 먼저 릴리스 노트를 읽으세요.
- 전환을 보고하지 않습니다. Rybbit은 페이지 안에서의 행동을 측정합니다. Google Ads와 Meta에는 여전히 각자의 전환 추적이 필요하며, Rybbit의 집계를 전환으로 읽어서는 안 됩니다.
- 자동 수집은 버튼 텍스트로 이름을 붙입니다. 다국어 사이트에서는 같은 버튼이 언어마다 별도의 이벤트로 들어오므로, 19개 언어로 된 사이트에서는 클릭 하나가 19가지 버전으로 나뉩니다. 대신 퍼널 단계마다 이름을 붙인 커스텀 이벤트를 보내세요.
- 자체 호스팅 버전에는 이메일 보고서가 없습니다. 클라우드에는 있습니다.
- AGPL 의무. Rybbit을 수정해 네트워크를 통해 다른 사람이 사용하게 한다면, 변경 사항을 공개해야 합니다.
기술 요구사항
2026년 10월 15일 현재 최신 릴리스는 2.9.1입니다.
최소 요구사항
- RAM 2GB
- x86_64, 또는 ARMv8.2-A 이상
- Docker Engine과 Git
- HTTPS를 지원하는 도메인 또는 서브도메인
프로덕션 권장 사양
- RAM 4GB 이상(메모리를 가장 많이 쓰는 쪽은 ClickHouse)
- SSD 스토리지
- ClickHouse와 Postgres 볼륨 모두의 정기 백업
- 첫 계정을 만든 뒤 가입 비활성화
비용 고려사항
자체 호스팅
- 소프트웨어: 무료(AGPL-3.0)
- 서버: 시작은 작은 VPS 한 대
- 유지보수: 업데이트와 백업에 드는 여러분의 시간
Rybbit Cloud
2026년 10월 15일 기준 가격입니다. 연간 결제이며 7일 무료 체험을 제공합니다:
- Standard: 월간 페이지뷰 10만 건 기준 월 13달러부터. 사이트 최대 5개, 팀원 최대 3명, 데이터 보존 3년, 세션 리플레이 없음.
- Pro: 월 26달러부터. 사이트와 팀원 무제한, 세션 리플레이, 데이터 보존 5년.
- Enterprise: 가격은 별도 문의. 전용 인스턴스 또는 온프레미스 인스턴스 포함.
모범 사례
- 가입 비활성화: 본인 계정을 만든 직후 바로 가입을 막으세요.
- User ID Salting은 출시 전에 결정: 나중에 바꾸면 사용자 수의 연속성이 끊깁니다.
- 내부 트래픽 제외:
localhost와 미리 보기 도메인은 호스트 이름으로, 사무실은 IP로 제외하세요. - 콘텐츠 보안 정책(CSP)에서 스크립트 허용: Rybbit 도메인을
script-src와connect-src모두에 넣으세요. 그렇지 않으면 브라우저가 스크립트를 차단하고, 그 이유는 콘솔에만 나옵니다. - 퍼널 이벤트 이름은 직접 지정: 다국어 사이트에서는 자동 수집에 기대지 마세요.
- 녹화 전에 마스킹: 리플레이를 켜기 전에 주문 확인 화면처럼 고객 데이터가 보이는 곳에
rr-block을 붙이세요. - 두 데이터베이스 모두 백업: ClickHouse에는 이벤트가, Postgres에는 계정과 설정이 들어 있습니다.
- 개인정보 처리방침에 Rybbit 명시: 무엇을 수집하는지, 로컬 스토리지 항목, 세션 리플레이를 녹화한다면 그 사실, 그리고 얼마나 오래 보관하는지 적으세요.
일반적인 사용 사례
- 마케팅 사이트: 예산을 늘리기 전에 유료 트래픽이 실제로 페이지를 읽는지 확인
- SaaS 제품: 로그인한 사용자의 퍼널, 리텐션, 사용자 프로필
- 에이전시: 고객사를 위한 무제한 사이트, 팀, 공개 대시보드
- 유럽 기업: 분석 데이터를 자체 서버나 EU에서 호스팅되는 클라우드에 보관
- 디버깅: 오류 추적, 그리고 문제가 생긴 세션의 리플레이
Rybbit 설정에 도움이 필요하신가요?
저희는 Rybbit을 직접 프로덕션에서 운영하고 있습니다. 다음과 같은 도움이 필요하시다면:
- 기존 리버스 프록시 뒤에 자체 호스팅 설치
- Google Analytics에서 이전, 또는 과거 데이터를 유지한 채 Plausible이나 Umami에서 이전
- 번역해도 깨지지 않는 커스텀 이벤트와 퍼널
- 개인정보 처리방침에 맞춘 프라이버시 설정과 리플레이 마스킹 점검
- 익명 방문부터 식별된 리드까지, Mautic과 함께 쓰는 Rybbit
무료 상담 및 견적을 위해 office@c9group.dev로 문의하세요.
게시일: 2026년 10월 15일 카테고리: 애널리틱스, 오픈소스, 프라이버시
애널리틱스
새 가이드와 규정 변경 소식을 이메일로
규정이 바뀌거나 기한이 변경되거나 새 가이드를 발행하면 이메일로 보내 드립니다.