구글 애널리틱스의 또 다른 대안들
원문은 Ben Hoyt님이 에 게재했습니다. 이 블로그 구독하기
지난주 우리는 소개한 Google Analytics(GA) 사용에 따른 개인정보 보호 문제를 소개하고, 두 가지 가벼운 오픈소스 옵션인 GoatCounter와 Plausible을 제시했다. 이들 도구는 비교적 기본적인 지표만 필요한 사이트 운영자에게 유용하다. 이번 두 번째 글에서는 보다 상세한 분석이 필요한 사람들을 위한, 더 무게감 있는 GA 대체재들을 소개한다. 또한 웹 서버 접근 로그를 기반으로 분석 데이터를 생성하는 도구들, 특히 GoAccess에 대해서도 살펴본다.
Matomo
가장 인기 있는 고기능 대안 중 하나는 오픈 코어 방식의 Matomo다. 이전에는 “Piwik”이라 불렸으며 2007년에 만들어졌다. LWN은 이미 2010년에 Piwik을 살펴본 바 있다. Matomo는 Google Analytics를 완전히 대체할 수 있는 기능을 갖춘 대안으로, GA의 강력한 기능이 필요한 기업이 옮겨가면서도 오픈소스이자 셀프 호스팅 방식이 주는 개인정보 보호와 투명성의 이점을 그대로 누릴 수 있다. 한 예로 웹 에이전시 Isotropic은 최근 Matomo로 전환했다:
우리는 사용자의 개인정보를 존중하고 싶었고, 통계 데이터를 자체 서버에 호스팅하는 것이 우리와 사용자 모두에게 더 낫다고 판단해 이렇게 하기로 결정했다. [...] 우리는 Google Analytics의 기능에 필적하거나 그보다 더 나은 무언가가 필요했다. 그 솔루션은 실시간 분석, 위치 정보, 광고 캠페인 추적, 히트맵을 제공하면서 오픈소스여야 했다.
Matomo가 가장 인기 있는 오픈소스 분석 도구이자 가장 오래된 도구임에도, 여전히 상위 100만 개 웹사이트 중 1.4%에서만 사용되고 있으며, 이는 GA 시장 점유율의 약 2%에 해당한다. 잘 알려진 오픈소스 소프트웨어조차 6,000억 달러 규모의 거대 기업과 경쟁하기는 어렵다.
GA와 마찬가지로 Matomo는 몇 가지 기본 수치와 차트를 담은 요약 대시보드와 함께 위치 지도, 유입 경로 정보 등을 포함한 다양한 상세 리포트를 제공한다. 여기에 더해 Matomo에는 “content tracking”이라는 기능이 있어, JavaScript를 작성하거나 서드파티 플러그인을 설치해야 하는 GA와 달리 코드를 작성하지 않고도 콘텐츠에 대한 사용자의 상호작용(클릭과 노출)을 자동으로 추적할 수 있다. Matomo의 셀프 호스팅 버전에는 이러한 기능이 모두 포함되어 있지만, 사이트 운영자는 플러그인을 유료로 구매해 설치할 수도 있는데, 예를 들면 funnel 측정, 싱글 사인온 지원, 심지어 마우스 움직임을 포함한 전체 사용자 세션을 기록하는 다소 침습적인 플러그인 등이 있다.
Matomo는 PHP로 작성되었으며 데이터 저장소로 MySQL을 사용한다. 설치는 PHP와 MySQL이 설치된 웹 서버에 파일을 복사하는 것만으로 간단하게 끝난다. GPLv3 라이선스로 제공되며, 무료 셀프 호스팅(독립형 또는 WordPress 플러그인 형태), 비교적 저렴한 두 가지 클라우드 옵션, 그리고 엔터프라이즈 요금제를 지원한다. Matomo는 잘 운영되는 프로젝트로 보이며, 꽤 활발한 커뮤니티 지원 포럼을 갖추고 있다. 셀프 호스팅 버전을 사용하는 기업을 위한 비즈니스 수준의 지원 플랜도 제공한다.
Open Web Analytics
비슷하지만 덜 알려진 도구로 Open Web Analytics(OWA)가 있는데, 역시 PHP로 작성되었고 GPLv2 라이선스를 따른다. OWA는 호스팅 서비스에 대한 월별 요금제 대신 기부 기반 개발 모델을 채택하고 있다. 모든 오픈소스 도구 중에서 OWA는 Google Analytics의 복제판처럼 느껴지는 정도가 가장 크다. 심지어 대시보드조차 GA와 비슷하게 생겼다. 그래서 GA 인터페이스에 익숙한 사용자에게는 좋은 선택이 될 수 있다.
OWA는 Matomo만큼 기능이 풍부하지는 않지만, 개요 대시보드, 웹 통계, 지도 오버레이 위의 방문자 위치, 유입 경로 추적 등 기본 기능은 모두 갖추고 있다. Matomo와 마찬가지로 해당 유형의 사이트 방문자를 분석하기 위한 WordPress 연동도 제공한다. 또한 API, 새로운 “modules”(플러그인)를 추가하는 기능, 다양한 추적 이벤트(예: 방문자의 첫 페이지 뷰나 마우스 클릭)에 후킹하는 기능 등 내장 기능을 확장하는 여러 가지 방법을 제공한다.
OWA는 Peter Adams라는 한 명의 개발자가 유지보수하고 있으며, 한동안 개발이 크게 중단됐던 시기도 있었다. 최근에는 개발이 다시 활기를 띠어, Adams가 2020년 초에 여러 새로운 릴리스를 내놓았다. 다만 1.6.9 릴리스에 대한 것과 같은 최근 릴리스에 포함된 일부 경고(“! IMPORTANT: The API endpoint has changed!
”)는 다소 우려스러울 수 있다. 설치는 마찬가지로 간단하며, 웹 서버에 PHP 파일을 복사하고 MySQL 데이터베이스를 준비하는 것만으로 충분하다.
Countly
또 다른 오픈 코어 옵션인 Countly는 2013년에 설립되었다. 비교적 기능이 풍부하고 다양한 유형의 대시보드를 갖추고 있다. 다만 이번에 다루는 도구들 중에서는 홈페이지의 세련된 영상과 UI 속 매끈한 대시보드까지 갖춰 가장 “웹 스타트업” 같은 느낌을 주는 도구다. Countly는 “당신의 분석 데이터를 당신이 통제하도록 하는 데 전념하고 있다”고 내세운다.
Countly는 엔터프라이즈 에디션(비교적 비싸며 연간 5,000달러부터 시작)과 셀프 호스팅 커뮤니티 에디션을 명확히 구분하고 있으며, 후자는 “basic Countly plugins”와 “aggregated data”로 제한된다. Countly의 핵심 소스 코드는 GNU AGPL 라이선스를 따르며, 서버는 Node.js(JavaScript)로 작성되었고 Android와 iOS용 SDK는 각각 Java와 Objective C로 작성되었다.
Countly의 기본 플러그인은 웹 및 모바일 기기에 대한 단순 통계와 유입 경로 같은 일반적인 분석 지표는 물론, 이메일 기반 리포트 예약이나 JavaScript 및 모바일 앱 크래시 기록 같은 좀 더 고급 기능도 제공한다. 그러나 엔터프라이즈 에디션에서는 Countly 자체나 서드파티 개발자가 만든 광범위한 플러그인을 통해 HTTP 성능 모니터링, 목표와 완료율을 갖춘 퍼널, A/B 테스팅 등 고급 기능을 제공한다. 전반적으로 Countly의 커뮤니티 에디션은 모바일 앱을 보유했거나 온라인으로 제품을 판매하는 기업에게는 충분히 풍부한 선택지이며, 필요할 경우 나중에 엔터프라이즈 버전으로 업그레이드할 수 있는 옵션도 제공한다.
Snowplow
보다 범용적인 이벤트 분석 시스템으로는 2012년에 설립되어 “the enterprise-grade event data collection platform
”으로 마케팅되는 Snowplow Analytics가 있다. Snowplow는 데이터 수집 부분을 제공하지만, 데이터를 어떻게 모델링하고 표시할지는 설치하는 쪽에 달려 있다. 세션을 어떻게 모델링할지 제어하고 싶거나 비즈니스 특화 필드로 데이터를 풍부하게 만들고 싶은 대규모 기업에 유용하다.
Snowplow 설치는 확실히 마음 약한 사람을 위한 것이 아니다. 여러 구성 요소를 설정해야 하는 것은 물론 상당한 수준의 Amazon Web Services(AWS) 설정이 필요하다. AWS 외부에 설치하는 것이 가능할 수는 있지만 쉽지는 않다. 다만 GitHub 위키에 포괄적인 AWS 설정 가이드가 마련되어 있으며(회사는 유료 호스팅 옵션도 제공한다). 기업은 이벤트를 PostgreSQL이나 AWS의 컬럼 기반 Redshift 데이터베이스에 넣거나, 추가 처리를 위해 데이터를 Amazon S3에 그대로 남겨두도록 설정할 수 있다. 일반적으로는 Looker나 ChartIO 같은 비즈니스 인텔리전스 도구를 사용해 데이터를 조회하지만, Snowplow가 그 부분을 강제하지는 않는다.
Snowplow는 여러 언어로 작성된 도구 모음으로, 특히 Scala(Spark 경유)와 Ruby가 두드러진다. Apache 2.0 라이선스로 제공된다. Snowplow는 상위 10,000개 웹사이트 중 거의 3%에서 사용되고 있어, 데이터 파이프라인에 대한 완전한 제어를 원하는 대기업에게는 합리적인 선택이 될 수 있다.
웹 접근 로그를 활용한 분석
위에서 설명한 모든 시스템은 JavaScript 기반 추적을 사용한다. 이 방식의 장점은 더 풍부한 정보(예: 화면 해상도)를 제공하고 웹 로그에 접근할 필요가 없다는 점이다. 하지만 서버 접근 로그를 사용할 수 있다면, 그 로그를 분석 소프트웨어에 직접 넣는 것이 더 바람직할 수 있다. 이를 수행하는 오픈소스 도구는 여러 가지가 있는데, 모두 20년 넘게 존재해 온 세 가지 도구로 AWStats, Analog, Webalizer가 있다. AWStats는 Perl로 작성되었으며 이들 중 가장 기능이 풍부하고 활발히 유지보수되고 있고, Analog는 Python으로, Webalizer는 C로 작성되었지만 둘 다 활발히 유지보수되지는 않고 있다.
좀 더 최근에 등장한 경쟁자로는 MIT 라이선스의 GoAccess가 있다. 처음에는 터미널 기반 로그 분석기로 설계되었지만, 보기에도 깔끔한 HTML 뷰도 제공한다. GoAccess는 C로 작성되었으며 ncurses에만 의존하고, Amazon S3나 Cloudfront 같은 클라우드 서비스의 로그를 포함해 모든 일반적인 접근 로그 형식을 지원한다.
GoAccess는 확실히 가장 현대적인 외관을 갖추고 잘 유지보수되는 접근 로그 도구이며, 페이지 URL별 히트 수와 방문자 수, 운영 체제 및 브라우저 유형별 분류, 유입 사이트 및 URL 등 모든 기본 지표를 생성한다. 또한 찾을 수 없는 페이지 URL, HTTP 상태 코드, 서버 응답 시간 등 JavaScript 기반 도구에는 일반적으로 포함되지 않는 여러 지표도 제공한다.
GoAccess의 기본 모드는 정적 리포트를 출력하지만, 데이터를 실시간으로 갱신하는 옵션도 있다. 터미널 모드에서는 200밀리초마다, HTML 모드에서는 자체적인 작은 WebSocket 서버를 이용해 1초마다 갱신된다. GoAccess의 설계는 잘 고민된 것으로 보이며, (디스크에 저장된 자료구조를 활용한) 증분 로그 파싱 옵션과 빠른 파싱 코드 및 인메모리 해시 테이블을 이용해 대용량 로그 파일을 파싱하는 기능 등을 지원한다.
이 도구는 대부분의 시스템에 쉽게 설치할 수 있으며, 주요 Linux 패키지 매니저용으로 미리 빌드된 패키지와 macOS 사용자를 위한 Homebrew 버전이 제공된다. 심지어 Cygwin을 이용하거나 Windows 10의 Linux Subsystem을 통해 Windows에서도 동작한다.
마무리
종합해 보면, 더 강력한 분석이 필요하거나 GA와 유사하면서도 오픈소스인 시스템을 원하는 이들에게는 여러 좋은 선택지가 있다. 전자상거래 사이트를 운영하거나 퍼널 분석 같은 기능이 필요한 경우에는 Matomo와 Countly가 좋은 선택으로 보인다. 이벤트가 저장되고 모델링되는 방식을 직접 제어해야 하는 기업이라면 Snowplow 설치를 고려해 볼 만하다. 웹 로그에 접근할 수 있거나 단순히 JavaScript 기반 추적을 사용하고 싶지 않은 이들에게는 GoAccess가 2020년 현재 웹 로그 분석을 위한 좋은 선택으로 보인다.
글을 무작위로 읽기
![Matomo UI [matomo.org의 Matomo UI]](https://static.lwn.net/images/2020/wa-matomo-sm.png)
![Countly UI [count.ly의 Countly UI]](https://static.lwn.net/images/2020/wa-countly-sm.png)
![GoAccess UI [GoAccess UI]](https://static.lwn.net/images/2020/wa-goaccess-sm.png)
댓글
로그인하고 댓글 남기기