
아키텍처
금융서비스 MSA 전환기 — DB 부(1편)
두줄요약
기존 대출비교 DB와 여신관리 서비스를 분리해 MSA 구조로 전환한 과정을 정리했습니다. DDD, Multi Datasource, CQRS, 트래픽 전환과 성능 개선 결과까지 함께 다뤘습니다.
문제 상황
- 대출비교 서비스와 여신관리 서비스가 하나의 DB를 공유하며 강결합 상태로 운영
- 메인 서비스 부하 증가로 전면 및 일부 장애 가능성 확대, 유지보수와 대량 트래픽 대응 부담
- 유관부서 영향도와 DB 이관 시 사이드 이펙트 검토가 필요한 전사적 전환 과제
원인 분석
- 서비스 간 DB JOIN과 타 도메인 로직 혼재로 경계가 불명확한 구조
- 전사 공통 모듈의 관리 부재로 유지보수 부담 증가
- 외래키 제약과 미분리된 테이블 구조로 성능 저하 및 관리 포인트 증가 우려
해결 방법
- 여신관리 DB를 대출비교 DB에서 분리하고, 수신·자산·배치관리 DB까지 독자 구조로 확장
- DDD 기반으로 Domain Event와 Bounded Context를 정의하고, 도메인별 로직과 API를 재배치
- Multi Datasource와 CQRS 구조로 read/write 분리, Ingress prefix redirect로 신규 서버로 트래픽 전환
성능/운영 포인트
- 외래키 제거, 미사용 테이블 정리, character set과 collation 변경으로 운영 부담 완화
- 공통 모듈 제거와 Maven에서 Gradle 전환으로 의존성 축소
- Databricks로 알림 발송 처리 이관, CPU Workload와 QPS 감소 확인
