자동화 slecs

메신저 송금봉투 자동수령 누락 버그 수정

목차

메신저 송금봉투 자동수령이 안 먹던 이유

파트너 정산 자동화 작업 중에 외부 메신저 송금봉투 알림이 들어와도 자동수령이 안 되는 케이스를 발견함. 알림 메시지는 분명히 들어왔는데 수령 처리가 안 되고 그대로 만료되는 상황. 이미 수동으로 처리하던 운영팀이 한참 쌓아둔 뒤에 알려줬음. 미안해서 바로 파봤음.

원인은 메시지 파서의 정규식

기존 파서는 일반 송금 알림만 매칭하고 있었음. "○○님이 ₩30,000을 보냈습니다" 같은 형태. 그런데 송금봉투(특별한 디자인의 송금)는 메시지 본문이 다르게 들어옴.

종류 본문 패턴
일반 송금 보냈습니다
송금봉투 봉투를 보냈습니다 / 용돈 봉투
더치페이 요청했습니다

봉투 패턴 두 종류가 빠져 있어서 알림 수집기 단에서 그냥 떨어트리고 있었음. 더치페이는 원래 자동수령 대상이 아니라 의도적 제외였는데, 봉투는 빠진 게 아니라 처음부터 케이스 누락이었던 것.

고친 부분

  • 메시지 파서에 봉투 매칭 정규식 두 개 추가
  • 알림 수집기에서 봉투도 자동수령 큐로 보내도록 분기 수정
  • 자동수령 서비스에서 봉투 금액 추출 로직 보강 (천단위 콤마, 원 단위 표기 모두 대응)
"용돈 봉투 50,000원이 도착했어요"
→ amount = 50000
→ kind = ENVELOPE
→ enqueue auto-receive

회귀 테스트로 잡은 케이스

수정하면서 기존 일반 송금 케이스가 안 깨지는지 단위 테스트 12개 추가함. 특히 금액 표기가 케이스마다 미묘하게 달라서 정규식 욕심내면 일반 송금이 봉투로 잡히거나 그 반대가 일어났음. 결국 패턴별로 우선순위를 두고 가장 구체적인 패턴부터 매칭하는 방식으로 정리. 일반 패턴이 봉투를 먼저 삼키는 사고를 한 번 쳤음.

배운 점

  • 외부 메신저 연동은 메시지 포맷 변형이 항상 적. 한 종류 잡았다고 끝나는 게 아님
  • 운영팀이 "이거 가끔 안 되는데요" 라고 흘리듯 말한 건 거의 100% 진짜 버그였음. 우선순위 올려서 봤어야 함
  • 정규식은 모아놓고 테이블화해서 관리해야 다음에 또 패턴 추가될 때 안 헷갈림

다음

댓글 0

첫 댓글 달아줘.