본문으로 이동
은행 최초 코어뱅킹 MSA 전환기 (feat. 지금 이자 받기)
문서

은행 최초 코어뱅킹 MSA 전환기 (feat. 지금 이자 받기)

장세경/조서희 · 토스 · 토스 기술 블로그

원본 보기

소개

수십 년간 정체되어 있던 전통적인 은행 시스템의 모놀리식 소프트웨어 아키텍처를 MSA로 전환할 수 있을까요? 토스뱅크의 ‘코어뱅킹 MSA 전환’ 사례를 통해 향후 은행 시스템이 나아가야 할 방향을 소개합니다.

AI 핵심 요약

모놀리식 코어뱅킹은 특정 업무의 트래픽을 따로 확장하기 어렵고, 한 서비스의 장애가 다른 업무로 번질 수 있어 고객 중심 기능을 빠르게 안정적으로 제공하는 데 한계가 있었다. 토스뱅크는 대표 서비스인 ‘지금 이자 받기’를 도메인별 마이크로서비스로 분리하고, Kubernetes·Spring Boot·Kotlin·JPA와 Kafka·Redis를 활용해 새 코어뱅킹 구조를 구축했다. 잔액 갱신에는 Redis Global Lock과 JPA의 DB 행 잠금을 적용하고, 즉시성이 덜 중요한 세금 처리는 Kafka로 분리했으며, 이자 계산 결과는 Redis에 캐싱했다. 기존 시스템과의 온라인·배치 비교 및 E2E 시나리오 검증 후 트래픽을 순차적으로 전환해 무중단 마이그레이션을 진행했고, 이자 지급 성능과 서비스별 확장성·안정성을 개선했다.

  • 서비스를 나눌 때는 서버 수보다 도메인 경계와 데이터 간 트랜잭션 필요성을 기준으로 삼으세요.
  • 잔액처럼 정확성이 중요한 데이터는 Redis 락에만 의존하지 말고 DB 행 잠금과 재시도·타임아웃을 함께 고려해야 합니다.
  • 비동기 처리에는 DLQ와 멱등성을 마련해 메시지 실패와 재처리 중복에 대비하세요.
  • 캐시는 갱신 주기와 데이터 정합성 요구에 맞춰 만료 정책을 설계해야 합니다.
  • 기존 시스템과 신규 시스템의 결과를 비교 검증한 뒤 트래픽을 단계적으로 옮기면 무중단 전환에 도움이 됩니다.