Moait
홈인기 피드모든 블로그모든 태그
홈인기 피드모든 블로그모든 태그
10년 된 레거시를 현대화하다 - Part.2: 매장 도메인의 구현 여정 섬네일

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

올리브영 favicon올리브영·Architecture·
AWSSpring BootJavaCQRSQuerydsl
2025년 01월 24일7

AI 요약

이 글은 AI가 요약했어요. 정확한 내용은 꼭 원문을 확인해 주세요!

핵심 요약

올리브영은 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 도입으로 읽기 모델의 독립성과 확장성이 향상되었고, 향후 성능 튜닝에 유리합니다.
  • 도메인 경량화는 불필요 컬럼 관리 부담을 줄이고 데이터 품질 관리에 기여합니다.

연관 피드

%가 높을수록 이 글과 비슷할 가능성이 높아요!
10년 된 레거시를 현대화하다 - Part.1: 도메인 분리의 첫걸음 섬네일
85%

10년 된 레거시를 현대화하다 - Part.1: 도메인 분리의 첫걸음

올리브영 favicon올리브영·2025년 01월 24일
10년 된 레거시를 현대화하다 - Part.3: 대고객 서비스로의 확장 섬네일
85%

10년 된 레거시를 현대화하다 - Part.3: 대고객 서비스로의 확장

올리브영 favicon올리브영·2025년 04월 30일
7,000줄 PL/SQL 프로시저와의 결별: 클레임 로직 Java 모듈 이관기 섬네일
74%

7,000줄 PL/SQL 프로시저와의 결별: 클레임 로직 Java 모듈 이관기

올리브영 favicon올리브영·2025년 11월 06일