10년 된 레거시, DDD로 혁신! CQRS, 멀티 모듈, JPA로 매장 도메인 구현

by DD
1년 전
조회수 8

CQRS 패턴멀티 모듈 아키텍처를 적용하여 레거시 시스템의 매장 도메인을 구현함

테이블 경량화통합 작업을 통해 불필요한 컬럼을 제거하고, 도메인 모델을 구축함

EntityVO를 활용하여 도메인 모델을 구현하고, JPA를 통해 데이터 접근을 관리함

CQRS와 멀티 모듈 아키텍처의 조화

CQRS 패턴CommandQuery를 분리하여 데이터 일관성을 유지하면서 조회 성능을 향상시킨다. 따라서 멀티 모듈 아키텍처와 결합하여 각 모듈의 책임을 명확히 분담하고, API 서버Consumer 서버의 독립적인 배포를 가능하게 한다. 결과적으로 유지보수성확장성을 동시에 확보한다.

레거시 테이블 경량화 및 통합 전략

레거시 시스템의 테이블 경량화도메인 모델 구축의 핵심이다. 불필요한 컬럼을 식별하고, 테이블 통합 작업을 통해 데이터 중복을 제거한다. 구체적으로, 필요 컬럼 식별테이블 식별데이터 마이그레이션 단계를 거쳐 데이터 무결성을 확보한다. 따라서 매장 서비스의 효율적인 운영 기반을 마련한다.

Entity와 VO를 활용한 도메인 모델링

Entity는 식별자를 가지며, JPA를 통해 데이터베이스와 매핑된다. 반면, VO(Value Object)는 불변성을 가지며, equals() & hashCode()를 재정의하여 동등성을 판단한다. 따라서 도메인 모델불변성을 보장하고, 멀티 스레드 환경에서의 안전성을 확보한다. 결과적으로 코드의 신뢰성을 높인다.

10년 된 레거시를 현대화하다 - Part.2: 매장 도메인의 구현 여정