10년 된 레거시를 현대화하다 - Part.2: 매장 도메인의 구현 여정
·2025.01.25 04:30
올리브영이 DDD 전술적 설계를 바탕으로 레거시 매장 도메인을 현대화하기 위해 도입한 아키텍처와 구현 전략을 소개한다.
올리브영 오프라인 팀은 기존 레거시 시스템에서 매장 도메인을 분리하기 위해 DDD(Domain-Driven Design)의 전술적 설계를 적용하여 실제 구현을 진행했다.
먼저 팀의 기술 스택 상황을 고려하여 Java + Spring Boot(자프링) 기반의 스켈레톤 프로젝트를 구축했다. 이는 팀원들의 숙련도를 고려한 결정이었으며, JPA, MyBatis, Swagger, Test Code 등을 포함했다.
아키텍처 측면에서는 다음과 같은 전략을 채택했다.
- 멀티모듈 아키텍처: 향후 서비스 분리(API, Consumer, Batch)를 용이하게 하고 코드 중복을 방지하기 위해
store-core,store-domain,store-service등으로 모듈을 세분화했다. - CQRS 패턴: 명령(Command)과 조회(Query)를 분리했다. JPA를 통한 도메인 모델링과 Querydsl/MyBatis를 활용한 복잡한 조회 쿼리 처리를 병행하여 성능과 유지보수성을 높였다.
도메인 모델 구축 단계에서는 기존 레거시의 방대한 테이블 구조를 효율적으로 다루기 위해 **Entity와 VO(Value Object)**를 활용한 모델링을 진행했다.
이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.
요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.