목록 보기
7,000줄 PL/SQL 프로시저와의 결별: 클레임 로직 Java 모듈 이관기
백엔드

7,000줄 PL/SQL 프로시저와의 결별: 클레임 로직 Java 모듈 이관기

올리브영
올리브영
2025년 11월 6일

두줄요약

7,000줄 PL/SQL 프로시저에 얽힌 교환·반품 로직을 Java 모듈로 점진 이관한 사례를 소개했습니다. Strangler Pattern과 Fallback, 모니터링 강화로 유지보수성과 확장성을 확보했습니다.

문제 상황

  • 주문 완료, 취소, 교환, 반품, 옵션 변경이 7,000줄 PL/SQL 단일 프로시저에 뒤섞인 구조
  • 비즈니스 로직 경계 붕괴로 작은 수정이 주문·교환까지 번지는 전사적 리스크
  • 디버깅 어려움, 로그 부재, 인력 의존성, 우회 로직 누적으로 블랙박스화된 레거시

원인 분석

  • 수년간의 패치와 신규 정책 누적로 분기 처리가 과도하게 증가
  • 프로시저 내부에서 암묵적으로 처리되던 트랜잭션과 예외 흐름
  • 변경 범위와 영향도 예측이 어려운 구조로 기술 부채 고착화

해결 방법

  • Strangler Pattern으로 기존 프로시저를 유지하면서 Java 모듈로 점진 이관
  • 주문·교환·반품·옵션 변경의 기능별 경계 재정의와 도메인 모델링
  • Fallback, Shadow 트래픽, 단위·통합 테스트, 모니터링 강화로 안정성 확보

주의할 점

  • PL/SQL의 성능 이점과 Java 전환 시 성능 저하 우려 고려
  • 트랜잭션 처리 방식 재설계 필요
  • 한 번에 옮기지 않고 작은 단위로 전환하며 실패 시 즉시 원복 가능한 구조 필요

다음 읽기

#refactoring 주제를 이어서 읽기

잃어버린 클레임 데이터를 찾아서

주문 테이블에 섞여 있던 교환/반품 데이터를 클레임번호 중심으로 분리해 관리 구조를 개선했습니다. 이를 통해 상태 추적과 부가비용 정산을 명확히 하고 동시 처리 기반을 마련했습니다.

올리브영
올리브영
백엔드

댓글 0개

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

댓글을 불러오는 중...