나는 한 달 동안 GA와 Umami를 나란히 실행했다. GA는 내 방문자의 절반을 놓쳤다.
Source: Dev.to
나는 개인 정보 보호 원칙 때문에 Google Analytics를 끈 것이 아니다. 숫자들이 의미가 없어지기 시작해서 끈 것이다.
내가 쓴 글이 인기를 끌었고, 친구가 그 글이 퍼지고 있다며 문자를 보냈다. 나는 GA를 열어보니 약간의 증가가 보였을 뿐—특별히 눈에 띄는 변화는 없었다. 하지만 댓글이 계속 달리고, 사람들이 계속 언급했다. 뭔가 이상했다. 그래서 오래전 해야 했던 일을 했다: 두 번째 분석 도구를 설치하고 두 개를 동시에 실행했다.
한 달 동안 Umami와 Google Analytics가 같은 사이트에서 같은 페이지를 추적했다. 마지막에 두 결과를 비교했다.
GA는 40 % 정도 적은 방문자를 보여줬다. 반올림 오류도, 설정 오류도 아니다. 그냥… 사라진 것이다. 이 차이는 Hacker News에서 좋은 반응을 얻었거나 개발자 커뮤니티에 공유된 게시물에서 가장 크게 나타났다. 그 청중은 uBlock Origin을 대부분의 사람이 안티바이러스를 사용하는 것처럼 항상 켜두고 있다. GA는 그가 차단하는 첫 번째 대상 중 하나다.
그 순간 나는 이것을 개인 정보 보호 논쟁으로 보지 않고 정확성 문제로 다루기 시작했다.
실제 셀프‑호스팅이 어떤 모습인지
“셀프‑호스팅” 하면 홈랩과 주말 내내 고생하는 걸 떠올리게 할 수 있다는 걸 압니다. 그렇지 않아요. 짧게 말하면: 작은 리눅스 서버를 임대하고, 서브도메인을 연결한 뒤 Docker Compose 파일을 실행하면 됩니다. 문서를 읽는 시간을 포함해 전체 과정은 오후 한 번에 끝났습니다.
제가 사용하는 Umami 설정입니다. 전체 docker‑compose.yml은 다음과 같습니다:
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://umami:yourpassword@db:5432/umami
DATABASE_TYPE: postgresql
APP_SECRET: generate-this-with-openssl-rand-hex-32
depends_on:
- db
restart: always
db:
image: postgres:15-alpine
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: yourpassword
volumes:
- umami-db-data:/var/lib/postgresql/data
restart: always
volumes:
umami-db-data:
docker compose up -d를 실행하고, 30초 정도 기다린 뒤 브라우저를 열면 됩니다. 대부분은 여기까지입니다. HTTPS를 위해 앞에 Caddy나 Nginx를 두어야 하지만, 그것은 아주 간단합니다.
실제로 보는 것
Umami 대시보드는 방문자, 페이지뷰, 리퍼러, 상위 페이지, 국가 및 디바이스를 한 번에 보여주는 단일 페이지입니다. 날씨를 확인하듯이, 궁금할 때 빠르게, 별다른 생각 없이 확인합니다. 목표, 퍼널, 전환 추적을 설정해 두지는 않았으며, 사람들이 내가 쓴 글을 읽고 있는지, 그리고 어디서 왔는지 알고 싶을 뿐입니다.
당신도 같은 것을 원한다면, Umami가 아마도 필요한 전부일 것입니다. 이것은 제가 직접 호스팅하는 다른 세 가지 서비스와 같은 서버에서 실행되며 거의 자원을 사용하지 않습니다.
좀 더 복잡한 것이 필요하다면—정식 퍼널, 세션 녹화, 히트맵 등—Matomo가 모든 것을 제공합니다. 실행에 무게가 더하고 인터페이스가 복잡하지만, 2007년(구 Piwik)부터 존재해 온 진정한 좋은 소프트웨어입니다.
실제로 중요한 내용
- 당신이 데이터의 소유자입니다. 구글이 2023년에 Universal Analytics를 종료했을 때, 모든 사람들이 창이 닫히기 전에 기록을 내보내기 위해 급히 움직였습니다. 데이터베이스가 당신의 서버에 있을 때는 이런 일이 일어나지 않습니다.
- 생각보다 저렴합니다. 매달 약 $6 정도로, 당신이 보유한 모든 사이트에 대해 영원히 분석을 수행하는 서버를 운영할 수 있으며, 사이트당 요금이나 페이지뷰 제한이 없습니다. 저는 같은 Umami 인스턴스에 네 개의 사이트를 연결하고 있습니다.
- GDPR 상황. 여러 EU 데이터 보호 기관은 미국 서버로의 데이터 전송 때문에 표준 Google Analytics 구현이 규정을 위반한다고 판결했습니다. 저는 변호사는 아니지만, 사용자가 유럽에 있다면(아마도 그렇겠죠) 이것은 알아두어야 할 실제적인 문제입니다.
- 정확도는 실제입니다. 일반 대중을 대상으로 하는 사이트에서는 차이가 10–15 % 정도일 수 있습니다. 개발자 중심 사이트나 HN, Reddit 등에서 주목받는 경우에는 차이가 50 %까지 쉽게 갈 수 있습니다. Plausible 팀은 연구를 발표했습니다, HN에서 바이럴된 사이트의 통계를 GA와 비교했을 때 GA가 방문자의 58 %를 놓치고 있음을 발견했습니다. 이는 작은 반올림 오차가 아니라 트래픽에 대한 완전히 다른 그림입니다.
어떤 도구
저는 Umami를 몇 년 동안 사용해 왔으며 전혀 문제 없이 잘 작동했습니다. 바로 이것이 인프라에서 제가 원하는 전부입니다. Plausible Community Edition은 좀 더 다듬어진 것을 원한다면 선택할 수 있는 도구입니다—대시보드가 정말 아름답고 단일 페이지 레이아웃이 딱 맞습니다. GoatCounter는 최소한의 구성을 원한다면 알아두면 좋은 도구입니다: 단일 바이너리, SQLite 데이터베이스, $3짜리 서버에서도 실행됩니다.
각 도구의 사용감, 리소스 요구 사항, 대상 사용자, 단계별 설치 방법을 더 자세히 알고 싶다면 제가 만든 가이드 **Your Data, Actually**를 참고하세요. 9개의 도구를 다루고, 3개의 전체 설치 과정을 제공하며, 시스템 관리자가 아닌 사람들을 위해 작성되었습니다.
솔직히 말해서, 가이드를 보지 않더라도 Umami를 선택하고 위의 Docker Compose 설정을 따라 하면 됩니다. 오후만 투자하면 됩니다. 트래픽 수치가 더 정확해지고, 쿠키 배너를 표시할 필요도 없으며, 방문자 데이터를 통해 구글 광고 비즈니스를 보조하는 일도 멈출 수 있습니다.