목록 보기
구관이 꼭 명관은 아니다: 정산 시스템의 세대교체
백엔드

구관이 꼭 명관은 아니다: 정산 시스템의 세대교체

무신사
무신사
2025년 6월 8일

두줄요약

레거시 정산 시스템의 성능 한계와 복잡도를 해결하기 위해 Spring Boot와 Spring Batch로 전면 재설계했습니다. 정산 기준별 Step 분리와 일간 집계 추가로 확장성과 운영 안정성을 높였습니다.

문제 상황

  • 7년간 운영된 네이버쇼핑 수수료 정산 시스템의 기술 부채 누적
  • 정산 데이터 폭증으로 상세 다운로드 API의 성능 한계와 타임아웃 발생
  • 거대 PostgreSQL 프로시저와 트리거 중심 구조로 변경·테스트·추적 비용 증가

원인 분석

  • Django 단일 스레드와 블로킹 I/O로 대용량 CSV 생성 처리 지연
  • 1,000줄 이상 SQL, 다수 조건 분기와 테이블 조인으로 로직 복잡도 증가
  • 트리거 기반 암묵적 실행 흐름과 테스트·버전 관리 부재

해결 방법

  • Spring Boot 기반 API와 Spring Batch로 배치·서빙 구조 재구성
  • 정산 기준별 Step 분리로 병렬 실행, 유연한 기준 추가, 공통 Reader/Processor/Writer 재사용
  • 상세 데이터는 기존/신규 테이블을 조건부 조회, 월간 집계는 신규 스키마로 이관

성능/운영 포인트

  • 멀티스레드 기반 REST API로 다운로드 병목 완화
  • 일간 집계 단계를 추가해 향후 정산 주기 확장성 확보
  • 정산 기준 전환 시 누락 가능 주문을 별도 시나리오와 테스트로 보완

댓글 0

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

댓글을 불러오는 중...