펌뱅킹 배치 전문이 안 온다면? Mapper ID 충돌 실전 사례

안녕하세요. 아는 형입니다.

오늘은 기업에서 SAP와 연계되어 사용하는 펌뱅킹 시스템, 그중에서도 배치 처리 쪽에서 겪었던 문제를 하나 풀어볼까 합니다.

펌뱅킹(Firm Banking) 배치 인터페이스를 구축하다 보면, 분명 은행도 VAN사도 수신 전문을 “정상적으로 보냈다”고 하는데 정작 우리 서버에는 파일이 안 들어오는 황당한 상황을 만날 때가 있습니다. 이번 글은 그 이유가 다름 아닌 Mapper ID 충돌 때문이었던 실제 프로젝트 경험담입니다.

펌뱅킹(Firm Banking)이란 무엇인가

본론에 들어가기 전에 펌뱅킹이 뭔지부터 짚고 가겠습니다. 펌뱅킹(Firm Banking)은 기업의 회계·ERP 시스템과 은행 시스템을 연결해서, 대량 이체·급여·거래처 지급·계좌 입출금 조회·은행거래 자동회계처리 등을 수행하는 기업용 금융 연결 시스템입니다.

쉽게 비유하자면 이렇습니다.

인터넷뱅킹이 사람이 은행 화면에서 직접 송금하는 방식이라면, 펌뱅킹은 SAP 같은 기업 시스템이 지급 데이터를 만들어 은행으로 전송하고, 처리 결과와 입출금 내역을 다시 받아 자동으로 회계 처리하는 방식입니다.

리얼타임과 배치, 두 가지 펌뱅킹 서비스

펌뱅킹 서비스는 보통 리얼타임배치 두 가지로 구분합니다. 리얼타임은 원화/외화/전자채권 발행 등에 쓰이고, 배치는 주로 급여 지급에 사용됩니다.

이 둘의 전문 처리 방식이 꽤 다른데요. 리얼타임은 한 건씩 전문이 발송되고 그 자리에서 실시간으로 응답코드를 받을 수 있습니다. 반면 배치는 파일 하나에 여러 건의 정보(계좌정보, 금액 등)가 뭉쳐서 발송됩니다. 은행에서는 이 배치 전문을 받으면 내부적으로 각 급여 지급계좌정보와 금액을 확인하고 지급 처리를 하는데, 처리된 내역은 보통 1시간 정도 후에 송신 시스템으로 다시 전송해줍니다.

구축하는 입장에서 배치 서비스는 이 부분이 은근히 번거롭습니다. 리얼타임처럼 즉시 처리 확인이 안 되다 보니, 문제가 생기면 VAN사에 연락해서 수신 여부와 은행 전송 요청을 확인하고, 다시 은행 전산담당자에게 연락해서 “VAN사에서 전송 처리가 되었으니 확인해달라”고 요청한 다음, 문제없으면 다시 수신 전문을 보내달라고 요청하는 절차를 거쳐야 합니다.

테스트 중 발생한 이상한 문제

이번 프로젝트를 수행하면서 신기한 일이 있었습니다.

배치 서비스 정상 여부를 테스트하려고 급여 전문을 만들어 송신했습니다. VAN사와 은행에도 정상적으로 수신됐고, 은행과 VAN사에서도 우리 쪽으로 정상 전송 처리를 했다고 답변을 받았습니다. 그런데 정작 저희 서버에서는 해당 전문 파일을 전혀 수신 받지 못하는 문제가 발생한 겁니다.

은행에서는 어제 두 시경에 데이터를 보냈다고 했고, VAN사에 확인해보니 두 시경 정상적으로 가져갔다고 합니다. 그런데 제 테스트 서버에는 아무 데이터도 들어오지 않은 상황. 뭐가 문제인지 한참 당황했습니다.

은행도, VAN사도 “우리는 정상 처리했다”고 하는데 정작 수신 서버에는 파일이 없는 상황. 펌뱅킹 배치 구축하시는 분들이라면 한 번쯤 겪어보셨을 법한 상황이 아닐까 싶습니다.

문제 해결의 실마리, Mapper ID

수소문을 해보니 다른 프로젝트에서 구축했던 인원이 동일한 문제를 경험했던 걸 알게 됐습니다.

VAN사에서 제공하는 펌뱅킹 모듈에는 Configuration 설정 값이 있는데, 여기에 VAN사에서 사용하는 Mapper ID라는 게 있습니다. 이 Mapper ID로 VAN사와 전문 간 데이터 수신 시 어떤 회사에서 온 것인지를 확인하게 됩니다.

그런데 이번 케이스는, 다른 계열사에서도 동일한 Mapper ID를 설정해두고 펌뱅킹 데몬을 띄워놓은 상태였습니다. 그러다 보니 그쪽 데몬이 살아있으면 그쪽에서 먼저 파일을 가져가 버리는 문제가 발생했던 거였죠.

 

[CF_Communication.xml – Mapper ID의 설정]

문제의 해결

즉시 현재 운영 중인 계열사 중에 동일한 Mapper ID를 쓰는 회사가 있는지 수소문했습니다.

특정 계열사에서 가져간 것을 확인하는 방법은, 해당 폴더에 제가 수신했어야 할 전문이 실제로 들어가 있는지 확인하는 방식으로 진행했습니다. 그렇게 확인한 뒤 Mapper ID를 VAN사를 통해 변경 요청했더니, 문제가 사라졌습니다.

확인은 어떤 식으로 했을까요?

위에  CF_Communication.xml 파일을 확인하고, 내용 중 Mapper ID가 동일한지를 문의했습니다.

당시 담당자에게는 이런 식으로 확인 요청을 드렸습니다.

혹시 개발 배치 Mapper ID가 아래와 같은지도 봐주십시요.

현재 우리 회사의 경우 Batch Mapper ID가 “FBEABCDE”인데,

<CONFIG name="BMTP_SERVER_MAPPER_ID" value="FBEABCDE"/>

홍길동 회사도 동일한 Mapper ID를 사용하고 계신가요? 그리고 배치 모듈이 살아 있나요?

계열사 간 Mapper ID가 겹쳐서 생긴 아주 단순한 원인이었는데, 막상 겪을 땐 은행도 정상, VAN사도 정상이라고 하니 어디서부터 의심해야 할지 감이 안 잡히더군요. 결국 은행에 새로운 배치 Mapper ID요청하여 설정한 후로는 더이상 문제가 발생하지 않았습니다

펌뱅킹 배치 인터페이스를 여러 계열사가 공유하는 그룹사 환경에서 신규 구축을 하신다면, Mapper ID가 다른 법인과 겹치지 않는지 초기에 꼭 한번 확인해보시길 권합니다.

펌뱅킹 리얼타임 쪽 인터페이스 설계에서 놓치기 쉬운 부분들은 나중에 펌뱅킹 리얼타임 인터페이스 설계 편에서 따로 다뤄보겠습니다.

댓글 남기기