목록 보기
레거시 결제 원장을 확장 가능한 시스템으로
백엔드

레거시 결제 원장을 확장 가능한 시스템으로

토스
토스
2025년 12월 1일

두줄요약

20년 된 결제 원장을 MySQL 기반 신규 구조로 전환한 사례를 다뤘습니다. 무중단 마이그레이션과 장애 복구 경험을 통해 확장성과 회복 탄력성을 높였습니다.

문제 상황

  • 20년 이상 운영된 레거시 결제 원장의 구조적 한계와 누적된 복잡성
  • 결제수단별로 다른 테이블 구조, 도메인 간 강한 결합, 결제 확장 제약
  • 수억 건 규모 데이터 이관과 운영 중 장애 대응이 필요한 전환 과제

구조와 흐름

  • MySQL 기반 신규 원장을 독립 구축하고 approve 공통 테이블 중심으로 재설계
  • 취소 데이터는 INSERT-only로 관리해 불변성, 히스토리 추적, 데드락 완화 확보
  • Kafka 이벤트, 도메인 분리, 결제와 승인 개념 분리로 결합도 감소와 복합결제 지원

해결 방법

  • 기존 원장 우선 저장 후 신규 원장 비동기 적재로 무중단 전환
  • RO DB 검증 배치와 멱등성·재적재 체계로 누락 데이터 보정
  • 별도 마이그레이션 서버, Bulk Insert, 로컬 캐시, 네트워크 대역폭 조정으로 대규모 이관 수행

주의할 점

  • 데이터 증가 시 쿼리 옵티마이저의 실행 계획 변화와 풀스캔 가능성
  • 멀티 원장, 외부 원천사, MSA 타임아웃 불일치로 인한 정합성 이슈
  • Outbox, 재발송, 로그 복구, 멱등키 같은 운영 복구 장치 필요

적용해볼 점

  • 신규 테이블 설계 시 운영 데이터 규모까지 포함한 쿼리 검증
  • 비동기 마이그레이션과 정합성 보정 배치의 병행
  • 장애 복구 가능한 구조와 멱등성 중심 이벤트 설계

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...