12CODE
← 아카데미 academy 17강. 데이터 누락·중복·급증을 발견하는 법 예상 5분

들어가며

상황

가상 브랜드 '데일리핏'은 어느 날 GA4의 add_to_cart 이벤트 수가 전날 대비 10배로 뛴 걸 2주 뒤에야 발견했습니다. 알고 보니 개발팀이 버튼 코드를 리팩토링하면서 클릭 이벤트가 중복으로 발동하고 있었습니다. 2주 동안의 광고 최적화가 잘못된 신호로 이뤄진 뒤였습니다.

한 줄 결론

데이터 이상은 발생 자체를 막기보다 "빨리 알아채는 것"이 현실적인 목표입니다. 이벤트 수의 평소 범위를 알아두고, 그 범위를 벗어나면 확인하는 루틴을 만들어두면 됩니다.

데일리핏의 사고는 이벤트 자체를 완벽히 막을 수는 없었어도, "일일 이벤트 수가 평소의 몇 배를 넘으면 확인한다"는 규칙 하나만 있었어도 2주가 아니라 하루 만에 잡혔을 문제였습니다.

개념

판단 기준

이상 신호를 셋으로 나눠 원인을 좁힙니다.

신호 우선 의심할 원인
특정 이벤트가 갑자기 0에 가깝게 떨어짐 태그 삭제·비활성화, 트리거 조건이 걸리는 페이지 구조 변경
특정 이벤트가 평소의 몇 배로 급증 코드 중복 실행, 같은 조건에 여러 트리거가 겹침, 봇 트래픽
일일 이벤트 수가 GA4 한도(사용자당 100,000개)에 근접 무한 루프성 이벤트 발동, 명백한 버그
실제 방문자 수는 그대로인데 특정 이벤트만 변함 최근 배포된 코드 변경 이력부터 확인

실행 순서

  1. 확인: 팀에서 매주 확인할 핵심 이벤트(구매, 장바구니 추가, 회원가입 등) 3~5개를 정하고, 최근 4주 평균을 베이스라인으로 기록한다.
  2. 결정: 이번 주 수치가 베이스라인의 절반 이하이거나 2배 이상이면 "확인 대상"으로 표시하고, 최근 배포·코드 변경 이력과 대조한다.
  3. 기록: 원인을 찾으면 이상 로그에 날짜·증상·원인·조치를 남긴다. 원인을 못 찾았어도 "확인했으나 원인 미상"으로 남겨 다음에 같은 조사를 반복하지 않게 한다.

바로 쓰는 템플릿

데이터 이상 로그

날짜 이벤트명 평소 대비(배) 유형(누락/중복/급증) 원인 조치
________ ________ ________ ________ ________ ________

즉시 확인

  1. 특정 이벤트 수가 평소의 10배로 급증했을 때 가장 먼저 확인할 것은? A. 광고 예산부터 늘린다 B. 최근 코드 배포나 태그 변경 이력을 확인한다 C. 무시하고 다음 주까지 지켜본다 정답: B — 급증은 실제 트래픽 증가일 수도 있지만, 코드 변경으로 인한 중복 발동이 흔한 원인이므로 배포 이력부터 대조합니다.

  2. 데이터 이상을 빨리 발견하기 위해 미리 필요한 것은? A. 더 비싼 분석 도구 B. 핵심 이벤트의 평소 범위(베이스라인) C. 매일 모든 이벤트를 수작업으로 확인하는 인력 정답: B — 평소 범위를 알아야 "이상하다"는 판단 기준이 생기고, 그래야 빠르게 알아챌 수 있습니다.

  3. 원인을 찾지 못한 이상 신호는 어떻게 처리해야 하나요? A. 기록하지 않고 넘어간다 B. "확인했으나 원인 미상"으로 로그에 남긴다 C. 담당자를 문책한다 정답: B — 기록해두면 같은 패턴이 다시 나타났을 때 조사 시간을 줄일 수 있습니다.

핵심 정리

  1. 데이터 이상은 완전히 막기보다 빨리 알아채는 것이 현실적 목표이며, 이를 위해 베이스라인이 먼저 필요하다
  2. 이상 신호는 누락·중복·급증 세 유형으로 나누고 각각 우선 의심할 원인이 다르다
  3. 원인을 찾았든 못 찾았든 이상 로그에 기록해두면 다음 사고를 더 빨리 잡을 수 있다

→ 이 강의 퀴즈 풀어보기 (챌린지)