
백엔드
레거시 정산 개편기: 신규 시스템 투입 여정부터 대규모 배치 운영 노하우까지
두줄요약
20년 레거시 정산 시스템을 분할정복과 데이터 모델 개선으로 개편했습니다. 대규모 배치는 테스트 자동화, 카나리 투입, Jenkins 기반 운영으로 안정성과 성능을 함께 높였습니다.
문제 상황
- 20년 이상 운영된 레거시 정산 시스템의 비즈니스 로직 복잡도와 유지보수 비용 증가
- 거래 집계 저장 구조로 인한 추적 불가능성과 설정 재현 어려움
- 대규모 배치 처리에서 I/O 증가, 단일 스레드 한계, 장시간 실행 문제
원인 분석
- 하나의 거대한 공통 쿼리에 조건 분기와 다수 JOIN, SUBQUERY가 집중된 구조
- 거래 결과를 최소 단위가 아닌 집계 단위로 저장한 데이터 모델
- 대량 배치와 조회 요구를 동시에 만족하기 어려운 저장·조회 구조
해결 방법
- 도메인과 세부 기능을 분리해 계산 로직을 객체화하고 점진적 전환 기반 마련
- 거래 단위 저장, 설정 스냅샷 보관, 상태 기반 재처리로 추적성과 복구성 강화
- 파티셔닝, 조회 전용 테이블, 캐싱, Bulk 처리, JDBC Batch Insert, 병렬 API 호출, 멀티스레드 Step 적용
성능/운영 포인트
- 테스트 자동화 플랫폼과 동일 코어 모듈 기반 계산 API로 수만 개 케이스 검증
- 배치 카나리 구조로 가맹점 단위의 점진적 투입과 빠른 롤백 가능성 확보
- Jenkins, Dynamic Provisioning, Job DSL, Thread Dump, Async Profiler, Prometheus, Pinpoint로 운영 안정성 강화