은행 이체 알림 판정을 정규식 우선으로 전환해 응답 속도 개선
목차
정규식 먼저, AI는 폴백으로
은행 알림에서 "이체 완료" 여부를 판정하는 핸들러들을 손봤음. 기존엔 AI 분류기를 1차로 돌리고 정규식을 폴백으로 두는 구조였는데, 이걸 뒤집었음. 정규식 1차, AI 폴백.
왜 뒤집었나
처음 설계 의도는 "AI가 더 똑똑하니까 먼저 시키고, 못 잡으면 정규식이 보조한다"였음. 근데 운영 들어가니 뒤집힌 비용 구조가 보였음.
- AI 호출당 평균 응답 800ms~2s
- 정규식 매칭은 1ms 미만
- 실측해보니 알림 메시지의 95% 이상이 정해진 템플릿
- 은행마다 문구는 다르지만 한 은행 안에선 거의 고정
즉 AI를 먼저 부르는 건, 95% 케이스에 대해 비싼 추론을 낭비하는 구조였음. AI 비용도 비용이지만 응답 지연이 사용자 체감에 그대로 꽂힘.
변경 전후
변경 전:
메시지 → AI 분류 → (실패 시) 정규식
변경 후:
메시지 → 정규식 → (미매칭 시) AI 폴백
판정 결과 자체는 동일하게 유지하되, 호출 순서만 바꿨음. 핸들러 5종(부산/기업/전북/케이/카카오) 전부 동일한 패턴으로 정렬.
구현하면서 신경 쓴 것
| 항목 | 처리 |
|---|---|
| 정규식 미스 시 동작 | 기존 AI 경로로 그대로 폴백, 결과 캐싱 |
| 신규 문구 패턴 등장 | AI 폴백 통계 모니터링 → 정규식 추가 |
| 핸들러별 정규식 충돌 | 은행 핸들러 분리되어 있어 영향 없음 |
| 테스트 | 기존 AI-first 테스트 케이스를 regex-first 로 재실행, 동일 결과 확인 |
특히 "AI 폴백 호출 빈도"를 메트릭으로 따로 빼둔 게 핵심임. 새로운 알림 템플릿이 등장하면 폴백 호출이 튀고, 그걸 보고 정규식을 보강하는 피드백 루프가 생김. AI는 이제 패턴 발견 도구로 격하됐음.
회고
처음부터 정규식 1차로 갔다면 좋았을 거란 후회는 있는데, 반대로 AI-first로 시작했기 때문에 "어떤 문구들이 실제로 들어오는지" 데이터를 모을 수 있었던 측면도 있음. 95%가 템플릿이라는 확신이 없었으면 폴백 구조로 못 뒤집었을 것임.
정형 데이터엔 정규식, 비정형엔 AI. 당연한 얘긴데 비용·지연·정확도 셋 다 뜯어보기 전엔 잘 안 보임.
끝
댓글 0
첫 댓글 달아줘.