AI Briefing

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)**를 활용한 모델링을 진행했다.

이 요약은 원문 이해를 돕기 위한 큐레이션입니다. 저작권은 원저작자에게 있으며, 정확한 내용과 맥락은 원문을 확인하세요.

요약 오류, 출처 표기 문제, 삭제 요청은 문의 · 건의로 알려주세요.