인터넷은행 송금 핸들러 추가와 실패 알림 메시지 개선
목차
신규 인터넷은행 핸들러 추가하면서 정리한 것
연락처 송금 기능에 인터넷은행 한 곳을 추가했음. 기존엔 시중은행 위주로 핸들러가 등록돼 있어서, 핸들러 레지스트리에 신규 은행 키를 추가하고 응답 파싱 로직을 별도 핸들러로 분리했음.
처음엔 그냥 기존 핸들러 복사해서 두세 줄만 바꾸면 끝일 줄 알았는데, 막상 들어가 보니 응답 포맷이 미묘하게 다름. 계좌 유효성 체크 반환 필드가 다르고, 에러코드 체계도 따로 놀았음. 결국 핸들러 인터페이스에 변환 메서드를 한 단계 더 두는 식으로 정리.
유틸 손본 부분
- 매칭 유틸: 동일 전화번호로 등록된 파트너가 여러 명일 때 우선순위 로직이 비어있던 케이스 보강
- 송금 유틸: 금액 포맷팅을 분기별로 따로 처리하던 코드를 단일 함수로 통합
- 알림 유틸: 실패 사유 코드를 사람이 읽을 수 있는 메시지로 매핑하는 테이블 추가
특히 알림 유틸 쪽이 손이 많이 갔음. 그동안 실패 알림이 FAIL_03 같은 코드만 던져줘서, 운영팀이 매번 코드표 찾아보고 있었음. 이번 기회에 매핑 테이블 정의하고, 메시지에 사유와 다음 액션 가이드를 같이 담도록 바꿈.
매핑 테이블 설계
| 구분 | 의미 | 알림 메시지 처리 |
|---|---|---|
| 계좌 오류 | 미등록/예금주 불일치 | 사용자에게 재확인 안내 |
| 한도 초과 | 일/월 한도 초과 | 현재 한도 정보와 함께 안내 |
| 시스템 오류 | 외부 응답 지연/실패 | 재시도 가능 여부 명시 |
이렇게 분류하니까 받는 쪽에서 바로 액션을 정할 수 있게 됨. 코드만 보고 추측하던 시간이 줄었다는 피드백 받음.
회고
헷갈렸던 포인트
- 핸들러 등록 키 네이밍 컨벤션이 통일 안 돼 있었음
- 동일 전화번호 중복 케이스가 운영 데이터에 생각보다 많았음
- 실패 코드가 은행마다 의미가 미묘하게 달랐음
다음엔 핸들러 추가할 때 응답 파싱 계약을 인터페이스로 더 빡빡하게 잡아두면, 신규 은행 붙일 때 시행착오를 줄일 수 있을 듯. 매핑 테이블도 코드 안에 박지 말고 외부 설정으로 빼두는 게 운영팀이 직접 관리하기 편할 것 같음.
끝
댓글 0
첫 댓글 달아줘.