
백엔드
DB Function To Java 전환으로 기술부채 갚기
두줄요약
십수년간 운영된 오라클 DB Function 기반 프로모션 조회를 Java API로 전환한 사례를 공유했습니다. 장애 대응, 테스트, 유지보수, 트래픽 분산 한계를 해결하고 성능 개선까지 목표로 삼았습니다.
문제 상황
- 십수년간 운영된 프로모션 조회용 오라클 DB Function 5개가 1천라인 이상 규모로 누적된 레거시 기술부채
- 장애 대응 시 로그 기반 디버깅과 롤백이 어렵고, 단위테스트·검증테스트가 사실상 불가능한 구조
- 내부 변수 의존이 강해 유지보수 비용이 커지고, 유사 API 추가 시 DB Function 세트가 다시 필요해지는 확장성 한계
원인 분석
- 로직이 DB Function 내부에 밀집돼 있어 관측성과 테스트 가능성 부족
- 클라이언트가 특정 DB와 Function에 직접 종속돼 트래픽 분산 유연성 저하
- 코드 규모와 변수 의존도가 커서 수정 영향 범위 예측 어려움
해결 방법
- 프로모션 조회 로직을 오라클 DB Function에서 Java API로 전환
- 기존보다 빠른 성능을 목표로 개선 방향을 설정
- 기능별 분리를 통해 향후 유사 API 확장 가능성 확보
