핵심 요약
올리브영은 Part.2에서 매장 도메인 구현 여정을 통해 전술적 설계 기반의 멀티모듈 아키텍처와 CQRS를 활용한 도메인 구축 사례를 공유합니다.
주요 경험
- 멀티모듈 아키텍처 도입으로 store-core, store-domain, store-service, store-api, store-consumer 간 의존성을 효율적으로 관리하고, API/Consumer/Batch의 독립 배포를 용이하게 했습니다.
- CQRS 패턴 도입으로 커맨드와 쿼리를 분리하고, 조회 기능은 Querydsl과 MyBatis를 함께 활용해 레거시 데이터 이관과 확장을 용이하게 했습니다.
- 도메인 모델은 Entity와 Value Object를 분리하고, 에그리거트 루트를 중심으로 바운디드 컨텍스트를 구성하여 불변성과 응집성을 높였습니다.
- 데이터 경량화/통합 작업으로 핵심 테이블과 컬럼만 남겨, 유지보수 및 개발 속도를 개선했습니다.
- Master DB와 Read Replica를 함께 구성해 안정성과 확장성을 확보하는 기반을 마련했습니다.
얻은 인사이트
- 레거시에서 신규 도메인 도출 시 아키텍처 경계 분리가 개발 효율성을 크게 높임을 확인했습니다.
- CQRS 도입으로 읽기 모델의 독립성과 확장성이 향상되었고, 향후 성능 튜닝에 유리합니다.
- 도메인 경량화는 불필요 컬럼 관리 부담을 줄이고 데이터 품질 관리에 기여합니다.



