100여개의 대출 기관 API, 자동으로 운영하기

100여개의 대출 기관 API, 자동으로 운영하기

안녕하세요! 뱅크샐러드의 Server Engineer 조성민입니다. 이번 글에서는 제 팀인 금융쇼핑 PA가 100여개에 이르는 금융 기관들을 연동하면서 겪은 문제들과 해결책을 공유해보려고 해요.





대출비교 서비스



1_01


중심적으로 다뤄볼 기능은 대출비교 라는 서비스예요. 사용자가 대출비교를 요청하면, 저희는 여러 금융사에 API로 해당 사용자 분의 대출 한도와 금리를 물어봐요. 그리고 그 결과를 한 눈에 보기 좋게 정리해서 보여드려서 원하는 대출을 쉽고 빠르게 신청하실 수 있게 해드려요.


이 과정에서 문제가 생기면 어떻게 될까요?

네, 사용자 분들이 받을 수 있는 좋은 대출 기회를 놓칠 수 있어요. 그래서 저희는 실시간으로 API 호출이 잘 되고 있는지 확인해야 해요.


예를 들어, 제휴 금융사의 네트워크가 바뀌는 상황을 생각해볼까요?



1_02

통신망 변경 이후에 API가 잘 작동하는지 어떻게 확신할 수 있을까요? 개발자 몇 명이 테스트해보는 것만으로는 부족해요. 실제 사용자들의 경험을 모두 파악하려면 어떻게 해야 할까요?





관찰 가능성(Observability) 확보하기


서비스 내부 상태를 이해하는 능력을 ‘관찰 가능성(Observability)‘이라고 해요. 이를 위한 데이터로는 크게 로그(log), 트레이스(trace), 메트릭(metric)이 있는데, API 성공률은 metric을 이용해 측정했어요.

count라는 metric을 통해 금융사 API를 호출할 때마다 성공 또는 실패 횟수를 세도록 설정했죠.



1_03

ID: bnk0026를 가진 금융사의 API 호출 성공 비율을 보여주는 Datadog 화면



그리고 이 데이터를 한눈에 볼 수 있는 대시보드도 만들었어요.



1_04



하지만 여기서 끝이 아니에요


이렇게 해서 API 성공률을 볼 수 있게 됐지만, 아직 완벽하진 않았어요. 왜냐고요?



1_05

금융사 측에서 먼저 오류를 안내해준 케이스

개발자가 계속 이 수치를 지켜봐야 한다는 단점이 있었거든요. 다른 일을 하다 보면 놓칠 수 있잖아요?





모니터링으로 능동적 대응하기


그래서 저희는 ‘모니터링(Monitoring)’ 시스템을 만들었어요. 이 시스템이 자동으로 이상 징후를 감지하고 개발자에게 알려주는 거죠. API 성공률이 특정 수준 이하로 떨어지면 알림을 보내도록 설정했어요.



1_06

금융사 서버 점검 등의 이유로 API 요청을 보내지 않게된 경우도 있어서, 인입되는 데이터가 없는 상황도 정상으로 취급하게 했어요!



1_07

발송되는 알림에는 발빠르게 오류를 분석할 수 있도록 해당 금융사 API 관련 로그와 API 성공률 대시보드 링크를 달았어요.


짜잔! 이제 API 성공률이 낮아지면 아래와 같은 slack 알림이 오게 되었어요.



1_08

실시간으로 오류를 알려주는 알림을 통해 저희는 금융사에게 먼저 이상을 문의드릴 수 있는 상태가 되었고, 오류 대응 로직을 빠르게 요청하거나 반영하게 되었어요.



1_09

금융사 측에 오류 문의를 드리고 로직으로 변경해주셔서 더 안정적으로 API를 사용할 수 있게된 예시




결과는?


선제적으로 오류를 대응하기 시작하다보니, 더 많은 오류를, 더 빠르게, 놓치지 않고 대응할 수 있게 되었어요!



1_10

이런 노력 덕분에 5개월 전 90%였던 API 성공률이 이제는 99%까지 올랐답니다.



1_11




마치며


빠르게 성장하는 서비스를 안정적으로 운영하려면 이런 시스템이 꼭 필요해요. 뱅크샐러드는 이런 시스템을 여러 개 운영하고 있어요. 덕분에 문제가 생기면 사용자 분들이 느끼기 전에 빠르게 해결할 수 있죠.

마지막으로, 이 모든 것을 함께 만들어준 금융쇼핑 PA의 동료들에게 감사의 말을 전하고 싶어요. 여러분 덕분에 이런 멋진 시스템을 만들 수 있었어요!







보다 빠르게 뱅크샐러드에 도달하는 방법 🚀

지원하기

Featured Posts

post preview
post preview
post preview
post preview
post preview

Related Posts