본문으로 이동
레거시 정산 개편기: 신규 시스템 투입 여정부터 대규모 배치 운영 노하우까지
문서

레거시 정산 개편기: 신규 시스템 투입 여정부터 대규모 배치 운영 노하우까지

강민주/박진현 토스 · 토스 기술 블로그

원문 보기

AI 핵심 요약

20년 넘게 운영한 정산 시스템은 비즈니스 로직이 거대한 공통 SQL에 얽혀 있고, 집계 데이터로는 거래별 오류를 추적하기 어려우며, 거래량 증가에 따라 배치 처리 시간도 늘어나는 한계가 있었습니다. 팀은 로직을 도메인별 객체로 분리하고 거래 단위 결과와 계산 당시 설정 스냅샷을 저장했으며, 날짜 기반 파티셔닝·인덱스와 조회 전용 테이블로 데이터 증가에 대응했습니다. Spring Batch에는 설정 캐싱, 청크 단위 Bulk 조회, JDBC Batch Insert와 병렬 처리를 적용하고, 자동화 테스트 및 레거시와 신규 결과를 비교하는 배치 카나리로 안전하게 전환했습니다. 운영 측면에서는 Kubernetes 이전 과정의 성능·중복 실행 문제를 겪은 뒤 Jenkins를 선택하고, 동적 자원 할당과 Job DSL 기반 설정 관리로 대규모 배치 운영을 개선했습니다.

  • 거대한 SQL은 도메인과 세부 기능 단위로 나누면 변경 지점과 영향 범위를 파악하기 쉬워집니다.
  • 거래별 결과와 당시 계약 설정 스냅샷을 함께 저장하면 오류를 추적하고 과거 계산을 재현할 수 있습니다.
  • Spring Batch에서는 설정 캐싱, 청크 단위 Bulk 조회, JDBC Batch Insert로 반복적인 데이터베이스 I/O를 줄일 수 있습니다.
  • 멀티스레드 배치의 중복·누락을 막으려면 동기화에만 의존하기보다 스레드별 처리 대상을 명확히 분할해야 합니다.
  • 배치 전환은 자동화 테스트와 레거시·신규 결과 비교를 거치는 카나리 방식으로 작은 단위부터 진행할 수 있습니다.

소개

토스페이먼츠 정산 플랫폼팀의 레거시 개편 여정을 공유합니다.

비슷한 학습 자료

컨퍼런스 SLASH

2022년 1월 1일, 토스뱅크 대출 오픈런을 견뎌낸 토스뱅크 대출의 시스템은 어떻게 구성되었는지 살펴봅니다. 토스뱅크의 시스템 아키텍처를 공유하고 DB 스키마를 안전하게 설계하는 방법과 kafka, redis를 활용한 유량제어 시스템을 공유합니다. 민재슬 / 토스 Server Developer 발표 자료 👉🏻 https://bit.ly/3zyJT4N 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://toss.im/slash-22 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im #토스 #개발자컨퍼런스 #SLASH

백엔드 데이터베이스 데브옵스 · 인프라

문서 박순현/양권성

약 20년간 운영되어 온 레거시 결제 시스템을 어떻게 확장성과 회복 탄력성을 갖춘 구조로 전환해 나갔는지, 그 과정에서 마주한 장애들과 해결 경험을 공유합니다.

백엔드 데이터베이스

문서 하태호

결제 산업 혁신을 꿈꾸며 출발한 토스페이먼츠. 하지만 그 시작점은 20년 된 레거시 시스템이었습니다. 어떻게 레거시 결제 시스템 개편을 이루어 냈을까요?

백엔드

문서 하태호

토스페이먼츠 엔지니어들이 지난 몇 년 간 쏟아부은 치열한 고민과 노력을 기록한 시리즈를 소개합니다.

문서 서소희/문은진

꼭 필요하지만 리소스가 많이 드는 단순 반복 업무, 리서치 프로세스에서 어떻게 개선했는지 소개해 드릴게요.

문서 한경훈

컬리의 새로운 배송 시스템 구축 과정과 프로젝트에서 얻은 교훈을 소개합니다.

백엔드