대규모 트래픽도 거뜬한 APM의 심장: HyperLogLog 기반 사용자 집계 기술
단 16KB의 메모리로 수억 명의 사용자를 중복 없이 집계하는 마법,
HyperLogLog 알고리즘이 대규모 트래픽을 처리하는 정교한 원리를 공개합니다.
대규모 트래픽도 거뜬한 APM의 심장: HyperLogLog 기반 사용자 집계 기술
대 웹 애플리케이션 환경에서 ‘액티브 사용자 수’를 실시간으로 파악하는 것은 비즈니스 건전성을 확인하는 가장 핵심적인 지표입니다. 하지만 수천만 명의 사용자가 동시에 접속하는 대규모 시스템에서, 중복 없이 정확한 사용자 수를 집계하는 것은 기술적으로 매우 까다로운 과제입니다.
단순한 카운팅이 왜 대규모 환경에서 한계에 부딪히는지, 그리고 이를 해결하기 위해 APM 에이전트가 채택한 HyperLogLog(HLL) 알고리즘의 원리를 심층 분석합니다.
1. 대용량 데이터의 딜레마: 왜 ‘그냥’ 세는 것이 불가능한가?
전통적인 데이터베이스 방식에서 중복 제거를 위해 사용하는 COUNT(DISTINCT user_id) 는 직관적이지만 치명적인 약점이 있습니다. 등장하는 모든 고유 ID를 메모리에 유지해야 한다는 점입니다.
사용자 수가 1,000만 명이라면 1,000만 개의 ID 문자열을 기억할 공간이 필요하며, 이는 메모리 사용량의 선형적 증가와 시스템 성능 저하로 이어집니다. 특히 수백 개의 애플리케이션 인스턴스가 가동되는 분산 환경에서는 모든 ID를 실시간으로 비교하고 업데이트하는 연산 비용이 기하급수적으로 상승합니다.
오픈마루는 이 문제를 해결하기 위해 “100%의 정확도를 미세하게 양보하는 대신, 무한한 확장성과 극강의 효율성을 얻는다”는 확률적 데이터 구조의 철학을 선택했습니다.
2. 사용자 식별: 정확한 집계의 첫 단추
집계의 신뢰도는 ‘누가 동일한 사용자인가’를 정의하는 것에서 시작됩니다. APM 에이전트는 다양한 환경에 대응하기 위해 세 가지 식별 모드를 제공합니다.
Mode 2 (KHANUSER 쿠키)
에이전트가 고유 ID를 담은 영구 쿠키를 자동 생성합니다. 브라우저가 유지되는 한 세션과 관계없이 가장 일관된 추적이 가능하여 순수 방문자(Unique Visitor) 측정에 가장 권장되는 방식입니다.
Mode 1 (JSESSIONID)
WAS의 기본 세션 쿠키를 활용합니다. 별도의 설정 없이 구현이 간단하지만, 세션이 만료되면 새로운 사용자로 인식되는 한계가 있습니다.
Mode 0 (IP 주소)
쿠키 사용이 불가능한 환경에서 사용됩니다. 다만, 공인 IP를 공유하는 NAT 환경이나 프록시 서버 사용 시 실제보다 적은 수로 집계될 수 있는 오차 가능성이 존재합니다.
3. HyperLogLog: 16KB로 수백만 명을 추적하는 확률의 마법
HyperLogLog(HLL)는 데이터를 있는 그대로 저장하지 않고, 데이터의 ‘통계적 패턴’만을 기록하는 혁신적인 알고리즘입니다. 그 핵심 원리는 다음과 같습니다.
해싱(Hashing)과 균일 분포
사용자 ID를 무작위로 보이는 고정 길이의 이진수로 변환하여 데이터가 특정 값에 치우치지 않도록 균일한 분포를 만듭니다.
확률적 관찰
변환된 이진수에서 앞부분에 연속적으로 나타나는 ‘0’의 개수 (leading zeros)를 관찰합니다. 동전을 던져 앞면이 10번 연속 나올 확률이 매우 낮듯, 0이 길게 연속되는 패턴이 발견되면 “매우 많은 고유 데이터가 입력되었다”라고 수학적으로 추정합니다.
유연한 시간 단위 롤업(Rollup)
에이전트는 2초마다 데이터를 전송하고 즉시 초기화하는 ‘Read-and-Reset’ 패턴을 따릅니다. 서버는 이 2초 단위의 조각들을 1분 단위로 DB에 저장하고, 이를 다시 5분, 1시간 단위로 병합합니다. 덕분에 서버 부하 없이도 과거 특정 시점의 순수 사용자 추이를 자유롭게 분석할 수 있습니다.
4. 서버에서의 마법: 시공간적 중복 제거와 병합(Merge)
분산된 환경에서 수집된 데이터 조각들은 서버에서 하나로 합쳐질 때 비로소 완성됩니다. HLL의 가장 강력한 속성 중 하나인 ‘병합 가능성(Mergeability)’이 여기서 빛을 발합니다.
인스턴스 간 중복 제거
사용자가 로드 밸런서에 의해 여러 대의 WAS를 오가며 접속하더라도, 서버는 각 인스턴스에서 온 HLL 스케치(Sketch)를 병합하여 시스템 전체 관점에서 단 한 명의 사용자로 정확하게 판별합니다.
유연한 시간 단위 롤업(Rollup)
에이전트는 2초마다 데이터를 전송하고 즉시 초기화하는 ‘Read-and-Reset’ 패턴을 따릅니다. 서버는 이 2초 단위의 조각들을 1분 단위로 DB에 저장하고, 이를 다시 5분, 1시간 단위로 병합합니다. 덕분에 서버 부하 없이도 과거 특정 시점의 순수 사용자 추이를 자유롭게 분석할 수 있습니다.
5. 실시간 대시보드: 비즈니스 의사결정의 근거
최종적으로 대시보드에 표시되는 ‘액티브 사용자 수’는 단순히 현재 접속 중인 세션 수가 아닙니다. 정교하게 계산된 최근 5분 구간의 중복 제거된 스냅샷입니다.
이 데이터는 마케팅 캠페인의 실시간 효과 측정, 트래픽 변화에 따른 자동 확장(Auto-scaling) 계획 수립, 그리고 잠재적인 장애 예측 등 비즈니스 성장에 직결되는 의사결정에 가장 신뢰할 수 있는 기술적 근거를 제공합니다.
마치며: 기술적 정교함이 만드는 운영의 확신
대규모 트래픽 환경에서 성능 모니터링은 단순히 숫자를 기록하는 것을 넘어, 시스템 리소스를 얼마나 지능적으로 관리하느냐의 싸움입니다. 100%의 수학적 정확성만을 고집하다가 모니터링 시스템 자체가 서비스의 병목이 되는 오류를 범해서는 안 됩니다.
HyperLogLog와 같은 영리한 알고리즘을 통해 메모리 효율성, 처리 속도, 그리고 무한한 확장성이라는 가치를 확보하는 것, 그것이 바로 오픈마루가 지향하는 고도화된 모니터링 기술의 정수입니다.
이번 백서를 통해 공유한 카디널리티 추정 기법이 대규모 인프라 운영을 고민하는 엔지니어분들에게 실질적인 기술적 영감이 되었기를 바랍니다.



![[백서 다운로드] 대규모 환경에서도 신뢰할 수 있는 APM 사용자 수 집계 전략](https://i0.wp.com/www.openmaru.io/wp-content/uploads/2026/02/om-title-active-user.webp?resize=80%2C80&ssl=1)
대구/경상 지역 하이브리드 클라우드 솔루션 세미나 발표자료 다운로드하세요~
/카테고리: APM, Cloud, OPENMARU, Red Hat, Seminar, 발표자료, 오픈나루 공지사항/작성자: OM marketing2023년 6월 대구 지역 클라우드 네이티브 세미나 자료 다운로드
/카테고리: APM, Cloud, OPENMARU, Seminar, 발표자료, 오픈나루 공지사항, 오픈소스/작성자: OM marketing2023 Red Hat Summit Boston 첫날 – 혁신과 열정의 시작
/카테고리: News, OPENMARU, Seminar, 오픈나루 공지사항/작성자: OM marketing