이상 탐지

Anomaly Detection

방법

지표가 평소 범위를 벗어난 순간을 사람이 화면을 보기 전에 기계가 먼저 집어내도록 걸어 두는 방법입니다.

등장 배경

대시보드를 만들어 두면 주요 지표가 한 화면에 모입니다. 문제는 그 화면을 누가 언제 보느냐입니다. 지표가 스무 개일 때는 아침마다 훑어볼 수 있지만, 팀이 늘고 화면이 여덟 개로 갈리고 각 화면에 그래프가 열 개씩 붙으면 매일 전부 확인하는 사람은 사라집니다. 대개는 월요일 회의 준비를 하다가 지난주 숫자를 처음 열어 봅니다.

그래서 이런 일이 생깁니다. 화요일 밤 결제 모듈을 고친 뒤로 결제 실패율이 1퍼센트에서 4퍼센트로 올랐는데, 그 사실을 아무도 모른 채 사흘이 지납니다. 금요일 오후에 세일즈가 고객 문의를 옮겨 오고 나서야 숫자를 열어 보고, 그래프에는 화요일부터 솟은 선이 선명하게 그려져 있습니다. 데이터는 처음부터 거기 있었고 볼 사람만 없었던 것입니다.

이상 탐지는 이 순서를 뒤집습니다. 사람이 화면을 찾아가 이상을 발견하는 대신, 값이 평소 범위를 벗어난 순간에 기계가 사람을 찾아오게 만듭니다. 매일 모든 그래프를 보는 일은 사람에게 맞지 않고 기계에는 부담이 아니라는 점을 이용한 것입니다.

사용 절차

거는 순서는 다섯 단계입니다. 첫 단계에서 대상을 좁히는 일이 전체의 성패를 가릅니다.

  1. 감시할 지표를 고릅니다. 화면에 있는 모든 그래프가 아니라, 값이 틀어졌을 때 그날 안에 누군가 손을 써야 하는 지표만 고릅니다. 결제 실패율과 가입 완료율은 여기 들어가고, 월 누적 매출처럼 하루 뒤에 확인해도 대응이 같은 지표는 뺍니다.
  2. 무엇을 평소로 볼지 정합니다. 방법은 둘입니다. 고정 기준은 결제 실패율 2퍼센트처럼 선을 하나 그어 두는 것이고, 통계 기준은 최근 30일의 같은 요일 같은 시간대 값을 모아 평균에서 얼마나 떨어졌는지를 재는 것입니다. 하루 안에서 값이 크게 출렁이는 지표에는 두 번째가 맞습니다.
  3. 민감도를 정합니다. 기준을 좁히면 작은 흔들림까지 잡히고, 넓히면 진짜 사고를 놓칩니다. 처음에는 넓게 잡아 하루 한두 건만 울리게 해 두고, 놓친 사건이 나올 때마다 조금씩 좁히는 편이 안전합니다.
  4. 울렸을 때 어디로 갈지 정합니다. 정해진 조건을 넘으면 담당자에게 연락이 가게 하는 장치가 알림이고, 이상 탐지는 그 장치에 조건을 넘겨주는 쪽입니다. 지표마다 받을 사람과 경로를 미리 적어 두지 않으면 알림은 아무도 안 보는 채널에 쌓입니다.
  5. 오탐을 줄여 나갑니다. 울렸는데 아무 일도 아니었던 건을 한 달에 한 번 모아 보고, 원인이 반복되면 기준을 고치거나 그 지표를 목록에서 뺍니다. 이 정리를 거르면 알림은 몇 주 만에 무시되는 소리가 됩니다.

이 절차가 서 있으려면 그 아래가 멀쩡해야 합니다. 지표 정의가 흔들리면 기계가 재는 대상 자체가 흔들리고, 데이터가 언제까지 반영됐는지를 재는 신선도가 나쁘면 세 시간 전에 끝난 사고를 지금 알리게 됩니다.

적합한 상황과 한계

잘 맞는 지표에는 공통점이 있습니다. 값이 자주 들어오고, 평소 모양이 반복되며, 틀어졌을 때 할 일이 분명한 지표입니다. 분당 수백 건씩 쌓이는 결제 성공률은 셋을 모두 갖췄습니다. 반대로 주 단위로 한 번 나오는 계약 건수는 비교할 과거 값이 몇 개 없어 기계가 평소를 정의하지 못합니다.

반복 패턴이 복잡한 쪽도 어렵습니다. 업무용 도구는 주말에 사용량이 절반으로 떨어지는데, 이 규칙을 모르는 기계는 토요일마다 사고라고 알립니다. 요일과 시간대를 나눠 비교하면 풀리지만, 연말이나 명절처럼 일 년에 몇 번뿐인 주기는 비교할 과거가 부족해 그대로 남습니다. 새로 낸 제품도 마찬가지입니다. 사용자가 매주 늘어나는 동안에는 오늘 값이 지난주보다 높은 것이 정상이라, 평소라고 부를 기준선 자체가 아직 없습니다.

가장 큰 한계는 알려 주는 범위입니다. 이 방법이 답하는 질문은 지금 값이 평소와 다르냐 하나뿐이고, 왜 달라졌는지와 심각한지는 답하지 않습니다. 결제 실패율이 뛰었다는 알림은 카드사 장애일 수도, 어젯밤 배포한 코드일 수도, 대형 고객 한 곳이 결제 수단을 바꾼 것일 수도 있습니다. 증상에서 진짜 원인으로 파고드는 근본 원인 분석은 사람이 별도로 해야 합니다.

실무 용례

"이상 탐지 걸어 놨는데 어젯밤 11시에 가입 수 급락으로 울렸어요."

기계가 정상 범위를 벗어난 값을 잡아 담당자에게 알렸다는 뜻입니다.

"그 지표는 주말마다 울려서 일단 탐지에서 뺐습니다."

요일 차이를 기준에 반영하지 못해 오탐이 반복돼 목록에서 제외했다는 말입니다.

"탐지는 붙었는데 알림 받을 사람이 안 정해져 있어요."

조건은 걸렸지만 울렸을 때 대응할 담당자가 지정되지 않았다는 지적입니다.

페이지덱은 결제 실패율, 가입 완료율, 응답 시간 셋에만 이상 탐지를 걸어 두었습니다. 지난달 수요일 새벽 2시에 결제 실패율이 최근 30일 같은 시간대 평균의 네 배로 올라 알림이 울렸고, 당번이던 태오가 15분 안에 확인해 전날 저녁 배포를 되돌렸습니다. 영향을 받은 고객은 40명 남짓이었습니다.

지현은 이 사건을 두고 지표를 더 늘리자는 요청을 받았지만 늘리지 않았습니다. 대신 한 달에 한 번 울린 건을 모아 보는 자리를 만들었습니다. 지난 정리에서 응답 시간 알림의 절반이 배치 작업이 도는 새벽에 몰려 있다는 것이 드러났고, 그 시간대를 빼자 한 주에 아홉 번 울리던 것이 두 번으로 줄었습니다.

흔한 오해

이상 탐지를 걸어 두면 사고가 줄어든다고 생각하는 경우가 많습니다. 감시하고 있다는 느낌이 예방처럼 읽히기 때문입니다. 그러나 이 방법은 이미 일어난 변화를 빨리 알려 줄 뿐 일어나는 것을 막지는 않습니다. 줄어드는 것은 사고의 수가 아니라 사고가 발견되기까지 걸리는 시간이고, 사흘이 15분이 되는 차이는 크지만 0이 되지는 않습니다. 예방으로 오해하면 정작 필요한 배포 전 점검이나 단계적 배포 같은 장치를 미루게 됩니다.

알림이 많을수록 촘촘히 지킨다고 믿는 것도 흔합니다. 지표 서른 개에 탐지를 걸면 스무 개일 때보다 안전해 보입니다. 실제로는 하루 열다섯 번 울리는 채널을 사람이 두 주 이상 성실하게 읽지 못합니다. 읽지 않게 되면 그중 섞인 진짜 사고도 같이 지나가, 결국 아무것도 걸지 않은 것과 같아집니다. 걸어 둔 개수가 아니라 울렸을 때 사람이 실제로 움직이는 비율이 이 장치의 성능입니다.

자주 헷갈리는 용어

용어무엇을 가리키는가이상 탐지와의 차이
이상치다른 값들과 동떨어진 값 하나데이터 안에 들어 있는 값의 성질을 부르는 이름입니다. 이상 탐지는 그런 값이 나타났는지를 계속 지켜보다 알리는 절차이고, 찾아낸 결과가 이상치입니다

같이 보면 좋은 페이지

  • 대시보드

    이상 탐지가 어떤 화면 위에 얹히는 장치인지 먼저 봅니다

  • 셀프서브 분석

    알림을 받은 뒤 각자 데이터를 파고드는 환경을 봅니다

  • 알림

    탐지된 값이 사람에게 닿는 경로를 봅니다

마지막 업데이트 2026-09-16