AI로 만든 업무 체크 툴을 어떻게 평가할까? 놓침, 오검출, 확인 부하의 3가지 지표
요약
본 글은 AI 모델의 정확도 평가를 넘어, 생성형 AI로 개발한 업무 체크 툴의 실제 판정 품질과 운영 부하를 측정하는 방법을 제시합니다. 놓침율(Miss Rate), 오검출률(False Positive Rate) 같은 전통적인 지표와 함께 '확인 부하'라는 실무적 지표를 추가하여 평가 체계를 구축해야 함을 강조합니다.
핵심 포인트
- AI 툴 평가는 모델 정확도보다 운영 품질과 부하 측정에 초점을 맞춰야 합니다.
- 놓침율(Miss Rate)은 실제 필요한 건수 대비 놓친 비율로 계산하며, OK였던 행 검증이 필수입니다.
- 오검출률(False Positive Rate)은 정상 데이터가 확인 대상으로 지정된 비율이며, 불필요한 작업량을 측정합니다.
- 확인 부하는 시간 소요 등을 포함하여 업무 운영 관점에서 추가적으로 측정해야 합니다.
근태 체크 툴을 만들고 운영하기 시작했을 때, 제가 가장 먼저 확인했던 것은 '판정 결과가 맞는지'였습니다.
하지만 실제로 사용한다는 것을 생각하면, 맞는 건수만으로는 충분하지 않습니다.
예를 들어 대다수가 정상 데이터라면, 확인 대상(필요한 부분)을 놓쳐도 겉보기 정답률은 높아집니다. 반대로, 정상 데이터까지 '확인 필요'로 지정하면 담당자의 작업량이 늘어납니다. 후반부에서는, 확인이 필요한 10건을 모두 놓치더라도 정답률이 90%가 되는 가상 사례를 보여드리겠습니다.
제가 생성형 AI의 지원을 받아 만든 것은 근태 데이터에서 확인 후보를 추출하는 로컬 HTML 툴입니다. 실제로 규칙의 경계값이나 대상 외 조건에 의한 오판정을 수정해 왔습니다. 다만, 도입 전후의 확인 시간이나 놓침율을 체계적으로 측정한 데이터는 아직 없습니다.
그래서 이번에는 앞으로 이런 종류의 규칙 기반 체크 툴을 평가할 때, 제가 무엇을 측정할지 정리합니다. AI 모델 자체의 정확도 평가가 아니라, AI를 사용해 개발한 업무 툴의 판정 품질과 운영 부하를 측정하는 이야기입니다.
먼저 '정답'을 준비하기
툴의 NG/확인 표시만으로는 맞았는지 판단할 수 없습니다.
대상 데이터에 대해 사람이 근거 자료, 업무 규칙, 예외 조건을 확인하여, '확인 대상으로 해야 하는지 / 안 해도 되는지'의 정답 레이블을 별도로 만듭니다. 여기서 미응답된 클라이언트 확인 사항을 임의로 정상이라고 결정하지 않는 것도 중요합니다.
비교하는 단위도 고정합니다. 예를 들어 '사원번호 × 근무일 × RuleID' 조합입니다. 같은 행에 여러 개의 확인 이유가 붙는다면, 각각을 따로 세는 것이 더 이해하기 쉬울 때가 있습니다. 성명을 대조 키로 사용하지 않고, 공개 예시는 가상 데이터로 합니다.
지표 1: 놓침율(Miss Rate) — 확인이 필요한데 OK 처리하고 있지는 않은가
실제로는 확인이 필요하지만, 툴이 OK 취급한 것을 '놓침(FN)'이라고 합니다.
놓침율 = 놓친 건수 ÷ 실제로 확인이 필요했던 건수
분류 평가에서 말하는 '위음성률(False Negative Rate)'로, 1 − 재현율(Recall)에 해당합니다.
여기서 측정하려면, 툴이 추출한 행뿐만 아니라 OK였던 행도 검증해야 합니다. 출력된 NG 목록만 보고는 놓침을 찾을 수 없습니다.
통상 근무, 반일 근무, 파트타임, 복수 거점 등 조건을 의식하여 정답이 포함된 테스트 데이터를 준비합니다. 새로운 예외가 발견되면 그 케이스도 추가합니다.
지표 2: 오검출률(False Positive Rate) — 정상 데이터까지 너무 많이 가져오고 있지는 않은가
정상인데 툴이 확인 대상으로 지정한 것을 '오검출(FP)'이라고 합니다.
오검출률 = 오검출한 건수 ÷ 실제로 확인 불필요했던 건수
분류 평가에서 말하는 '위양성률(False Positive Rate)'에 해당합니다.
예를 들어 반일 근무에 통상 근무의 기준을 적용해 버리면, 정상적인 근무까지 NG가 될 가능성이 있습니다. 그러면 담당자는 불필요한 확인 작업을 하게 됩니다.
주의할 점은, 오검출률과 '추출 후보 중 오류였던 비율'은 다르다는 것입니다. 후자는 '오검출 건수 ÷ 툴이 확인 대상으로 추출한 총 건수'로, 1 − 정밀도(Precision)에 해당하며, 후보의 확인 효율을 보는 보조 지표로 활용할 수 있습니다. 분모를 혼동하지 않도록 주의해야 합니다.
지표 3: 확인 부하 — 사람이 확인하는 업무가 정말 줄었는가
놓침이나 오검출이 개선되어도, 운영에 시간이 너무 많이 걸리면 실무에서는 사용하기 어렵습니다.
제가 기록할 것은 다음과 같습니다.
- 툴이 추출한 '확인 필요 건수'
- 건당 확인/문의/수정에 소요된 시간
- 툴 실행, 파일 정리, 재확인을 포함한 총 작업 시간
- 판단에 어려움을 느껴 보류한 건수
확인 부하는 머신러닝의 표준 분류 지표가 아니라, 업무 운영을 위해 제가 추가한 지표입니다.
구체적으로 어떻게 계산할까 (설명용 가상 예시)
아래는 실측 결과가 아닌, 계산 방법을 설명하기 위한 것입니다.
| 실제 상태 | 툴: 확인 대상 | 툴: OK |
|---|---|---|
| 확인 필요 | 8 (정확히 감지) | 2 (놓침) |
| 확인 불필요 | 6 (오검출) | 84 (정확히 OK) |
이 가상 예시에서는 100건 중 92건이 올바른 판정으로, 정답률은 92%입니다. 그래도 실제로 확인이 필요한 10건 중 2건을 놓치고 있습니다(놓침율 20%). 정상 90건 중 6건을 가져왔습니다(오검출률 약 6.7%).
같은 100건에 대해 '모두 OK'로 판정하는 툴이라면, 90건의 정상 데이터는 올바르게 OK가 되고 정답률은 90%입니다. 하지만 확인이 필요한 10건을 모두 놓치기 때문에, 놓침율은 100%가 됩니다. 정답률만으로는 이 차이를 간과하게 됩니다.
숫자를 볼 때는 무엇이 발생하면 곤란한지 먼저 결정해야 합니다. 급여에 영향을 미치는 놓침(miss)을 줄이는 것을 우선할지, 확인 담당자의 부하를 줄일지에 따라 조정하는 생각이 달라집니다.
CSV로 재현하기
먼저 검증용 CSV 파일을 '사원번호・근무일・RuleID' 기준으로 1행씩 준비합니다. 다음은 모두 가상의 데이터입니다. 실제 근태 데이터나 이름은 포함하지 않습니다. 이 CSV를 check_results.csv라는 이름으로 저장합니다.
employee_id,work_date,rule_id,needs_review,predicted_review
E001,2026-10-01,R014,1,1
E002,2026-10-01,R014,1,0
...
needs_review: 근거 자료를 확인하여 사람이 확정한 정답 (1=확인 필요, 0=확인 불필요)
predicted_review: 툴의 판정 (1=확인 대상, 0=OK) - 보류 중인 판단은 무리하게 0/1로 하지 않고 대상으로 제외하여 별도로 관리합니다.
다음 Python 코드를 사용하면 정답과 툴 판정을 대조할 수 있습니다 (표준 라이브러리만 사용). CSV의 4행은 계산 동작 예시이며, 기사 중의 100건 가상 집계와는 다릅니다.
import csv
with open('check_results.csv', encoding='utf-8-sig', newline='') as f:
rows = list(csv.DictReader(f))
...
이 4행 샘플 CSV의 실행 결과는 다음과 같습니다.
TP=1, FN=1, FP=1, TN=1
놓침율: 0.5
오검출률: 0.5
입력이 공란이거나 0/1 이외의 경우, 또는 사원번호・근무일・RuleID가 중복되는 경우에는 assert로 처리를 멈춥니다. 보류 중인 행은 임의로 0/1로 하지 않고 별도 관리하여 정답 확정 후에 포함해 주세요. Python을 설치한 본인의 PC 내에서만 실행할 수 있습니다.
제가 한다면, 다음 월별 체크에서 이렇게 시작할 것입니다
- 판정 단위를 정하고 규칙별 테스트 케이스를 준비한다
- 담당자가 독립적으로 정답을 확인하고, 판단 근거와 보류 사항을 남긴다
- 툴 출력과 정답을 대조하여 놓침・오검출을 집계한다
- 요확인 대응 시간, 재체크 시간을 기록한다
- 규칙을 수정했다면, 고친 케이스뿐만 아니라 기존의 정상 케이스도 재테스트한다
이 5단계를 한 번에 완벽하게 측정하는 것은 어려울 수 있습니다. 우선 '어떤 RuleID에서 몇 건 오판정이 있었는지'와 '대응에 몇 분이 걸렸는지'부터 기록을 시작해도 다음 개선 자료가 됩니다.
'제대로 작동했다'를 한 단계 더 구체화하기
앞서 공개한 기사에서는 업무 판단을 조건으로 바꾸어 툴에 적용하는 과정을 작성했습니다. 다른 기사에서는 STOP 조건을 표시할 뿐만 아니라, 정말로 멈추고 수정하여 재개할 수 있는지라는 시점을 작성했습니다.
이번 관점은 그 다음입니다. 무엇을 가지고 운영 가능하다고 판단할 것인지, 그러기 위해 무엇을 기록할 것인지.
'AI가 만들었으니 신뢰할 수 있다'거나 '사람이 확인하니 괜찮다'고 단정하지 않고, 놓침・오검출・확인 부하를 나누어 봅니다. 실무에서 사용하는 툴이라면, 이곳을 조금씩 측정할 수 있도록 하고 싶습니다.
당신의 업무 체크 툴이라면, 우선 무엇을 놓치면 곤란할까요?
참고 자료
Google for Developers
Classification: Accuracy, recall, precision, and related metrics
토론

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기