USE CASES/사례 연구

지급결제업무와 그래프 데이터베이스

(주)비트나인 2015. 9. 23. 11:11

안녕하세요. 김경호선임입니다.

이번에는 지급결제라는 금융회사 IT 업무와 그래프 데이터베이스를 관련시켜 이야기 해보려 합니다.




먼저 지급결제에 대해서 간략히 알아보겠습니다.

우선 세계적으로 가장 유명한 지급결제 회사로는 paypal 있습니다페이팔은 독자적인 FDS(Fraud Detection System) 효율적으로 운영하므로 신뢰도 있는 지급결제 서비스를 제공하며 차세대 핀테크 산업의 대표주자로도 손꼽히고 있습니다.




지급결제란 현금 화폐적 가치이전을 통해 경제주체간 각종 경제 활동에 따라 발생한 채권채무관계를 해소하기위해 이루어지는 처리과정을 의미합니다지급결제의 다양한 업무중에 3행이체 라는 업무를 예를 들어 쉽게 설명해보겠습니다.




만약 A라는 고객이 우리은행 카드를 하나은행 ATM기기에 넣고 B라는 사람의 신한은행 계좌로 이체를 한다고 하면이에 대한 정보가 금융회사 3곳을 거치게 되겠죠.(우리하나신한그리고 서로 다른 금융회사에게 네트워크상으로서로의 interaction 알려줄 중계 기관이 필요합니다이때  네트워크를 금융공동망이라 하고 중계 기관은 지급결제 업무의 경우 금융결제원이 됩니다.




1. 먼저 A라는 고객이 이체 완료 버튼을 누른 순간 ATM기기를 관리하는 하나은행 전산의 FEP(대외접속시스템)운영파트에서는 금융결제원에게  고객이 신한은행의 B라는 고객에게 이체 작업을 하려 한다라고 요청을 보냅니다 요청은 전문이라는 개념을 이용하여 보내어집니다.(금융공동망을 통한 모든 요청통보 작업은 전문을 통해 이루어집니다그리고 금융회사들은 전문을 수신  때마다 자사 운영 DB 송수신 내역을 저장하게 됩니다이를 통해 IT 아닌 현업들이 영업점에서 이체 정보등을 조회할 수가 있는 것이죠.)

 전문은 금융공동망에서 약속한 일정한 길이와 구조를 지닌 string입니다 string에는 날짜금액송수신측 계좌번호송수신금융회사의 금융공동망 코드전문 종류 등이 들어있습니다.

 

2. 금융 결제원은 해당 요청을 받고 우리은행 측에 우리은행 A고객이 신한은행 B고객에게 이체 작업을 하려하니 이를 반영해라 라는 통보를 줍니다.

우리은행의 FEP 다시  정보를 받고 우리은행 지급결제 파트에 처리 요청을   처리가 완료되면 다시 금융결제원에 우리은행 측은 처리가 완료되었습니다신한은행으로 해당 정보를 보내주십시오.라는 전문을 보냅니다.

 

3. 금융결제원은 다시 신한은행의 FEP 우리은행의 A라는 고객이 신한은행의 B라는 고객에게 얼마를 이체요청을하였으니 해당사항을 반영하십시오.라는 통보를 보내게 되고신한은행 FEP 이를 받아 신한은행 지급결제 파트에처리요청을 보냅니다신한은행의 지급결제 파트에서 처리가 완료되면 다시 금융결제원에 이체 처리 작업이 완료되었습니다.라는 요청을 보내게 되고 이로써 3행이체라는 작업이 완료가 되는 것입니다.

 

조금  자세히 살펴보고자 한다면 더욱 복잡한 전산 프로세스와 기관이 있는데  틀은 이와 같이  금융회사와 중계기관이 정해진 규약을 통해 통신함으로써 하나의 트랜젝션을 완료하는 구조입니다.

 





여기까지 3행이체 처리 프로세스 였습니다.




우리 비트나인이 개발하는 그래프 데이터베이스가 FDS 영역에 응용이  때에는 이러한 업무 프로세스에 대해서 조금은 살펴볼 필요가 있다고 생각합니다우리가 FDS 직접 개발하는 것은 아니지만 말이죠.

그래프 데이터베이스에 상기 3행이체의 예를 데이터베이스화 시킬 경우 패턴에 대한 모습을 상상해 보겠습니다.

우선은 은행계좌중계센터라는 Label 지닌 노드 혹은 vertex 존재하겠고  그림에서 화살표로 표시된 상호작용은 3행이체_num_num 같은 edge 표현될  있을 겁니다여기서  추가한다면 은행계좌 노드의 property로는 계좌번호고객이름잔고 등이 포함될  있으며 3행이체 edge property에는 이체일자가 포함될  있을 것입니다.




Neo4J Cypher 질의를 통해 2015 9 10일에 우리은행에서 신한은행으로 3행이체를  홍길동 고객의 우리은행 계좌번호를 알려고 한다면

 

MATCH      (woori_acc:은행계좌 {bank_name: 우리}),

            (shinhan_acc:은행계좌 {bank_name: 신한}),

            (kftc:중계센터 {center_name: 금융결제원}),

            (woori_acc) - [trade_start:3행이체_2_1] -> (kftc) - [:3행이체_3_1] - > (shinhan_acc) - [:3행이체_3_2] ->(kftc)
          
- [:3행이체_3_3] -> (shinhan_acc)

WHERE     woori_acc.acc_name: 홍길동 AND trade_start.date = 20150910

RETURN    woori_acc.accno

 

  것입니다. (물론 해당 그래프 모델은 간략한 예를 통한 응용 설명을 위한 것임으로 실제 사례에 대한 최적정확한 모델과는 차이가 있습니다.)

 



이상으로 지급결제 업무와 이를 그래프 데이터베이스로 표현하였을  생각할  있는 간단한 질의를 예로 들어보았습니다.




환절기입니다모두 건강 유의하십시오. 감사합니다.






Posted by Bitnine(비트나인)