안녕하세요! 뱅크샐러드의 Server Engineer 조성민입니다. 이번 글에서는 제 팀인 금융쇼핑 PA가 100여개
에 이르는 금융 기관들을 연동하면서 겪은 문제들과 해결책을 공유해보려고 해요.
중심적으로 다뤄볼 기능은 대출비교
라는 서비스예요. 사용자가 대출비교를 요청하면, 저희는 여러 금융사에 API로 해당 사용자 분의 대출 한도와 금리를 물어봐요. 그리고 그 결과를 한 눈에 보기 좋게 정리해서 보여드려서 원하는 대출을 쉽고 빠르게 신청하실 수 있게 해드려요.
이 과정에서 문제가 생기면 어떻게 될까요?
네, 사용자 분들이 받을 수 있는 좋은 대출 기회를 놓칠 수 있어요. 그래서 저희는 실시간으로 API 호출이 잘 되고 있는지 확인해야 해요.
예를 들어, 제휴 금융사의 네트워크가 바뀌는 상황을 생각해볼까요?
통신망 변경 이후에 API가 잘 작동하는지 어떻게 확신할 수 있을까요? 개발자 몇 명이 테스트해보는 것만으로는 부족해요. 실제 사용자들의 경험을 모두 파악하려면 어떻게 해야 할까요?
서비스 내부 상태를 이해하는 능력을 ‘관찰 가능성(Observability)‘이라고 해요. 이를 위한 데이터로는 크게 로그(log), 트레이스(trace), 메트릭(metric)이 있는데, API 성공률은 metric을 이용해 측정했어요.
count라는 metric을 통해 금융사 API를 호출할 때마다 성공 또는 실패 횟수를 세도록 설정했죠.
ID: bnk0026를 가진 금융사의 API 호출 성공 비율을 보여주는 Datadog 화면
그리고 이 데이터를 한눈에 볼 수 있는 대시보드도 만들었어요.
이렇게 해서 API 성공률을 볼 수 있게 됐지만, 아직 완벽하진 않았어요. 왜냐고요?
금융사 측에서 먼저 오류를 안내해준 케이스
개발자가 계속 이 수치를 지켜봐야 한다는 단점이 있었거든요. 다른 일을 하다 보면 놓칠 수 있잖아요?
그래서 저희는 ‘모니터링(Monitoring)’ 시스템을 만들었어요. 이 시스템이 자동으로 이상 징후를 감지하고 개발자에게 알려주는 거죠. API 성공률이 특정 수준 이하로 떨어지면 알림을 보내도록 설정했어요.
금융사 서버 점검 등의 이유로 API 요청을 보내지 않게된 경우도 있어서, 인입되는 데이터가 없는 상황도 정상으로 취급하게 했어요!
발송되는 알림에는 발빠르게 오류를 분석할 수 있도록 해당 금융사 API 관련 로그와 API 성공률 대시보드 링크를 달았어요.
짜잔! 이제 API 성공률이 낮아지면 아래와 같은 slack 알림이 오게 되었어요.
실시간으로 오류를 알려주는 알림을 통해 저희는 금융사에게 먼저 이상을 문의드릴 수 있는 상태가 되었고, 오류 대응 로직을 빠르게 요청하거나 반영하게 되었어요.
금융사 측에 오류 문의를 드리고 로직으로 변경해주셔서 더 안정적으로 API를 사용할 수 있게된 예시
선제적으로 오류를 대응하기 시작하다보니, 더 많은 오류를, 더 빠르게, 놓치지 않고 대응할 수 있게 되었어요!
이런 노력 덕분에 5개월 전 90%였던 API 성공률이 이제는 99%까지 올랐답니다.
빠르게 성장하는 서비스를 안정적으로 운영하려면 이런 시스템이 꼭 필요해요. 뱅크샐러드는 이런 시스템을 여러 개 운영하고 있어요. 덕분에 문제가 생기면 사용자 분들이 느끼기 전에 빠르게 해결할 수 있죠.
마지막으로, 이 모든 것을 함께 만들어준 금융쇼핑 PA의 동료들에게 감사의 말을 전하고 싶어요. 여러분 덕분에 이런 멋진 시스템을 만들 수 있었어요!
보다 빠르게 뱅크샐러드에 도달하는 방법 🚀
지원하기