올리브영, 10년 된 레거시를 DDD로 혁신!

by DD
1년 전
조회수 2

10년 된 레거시 시스템의 문제점을 분석하고, 도메인 분리를 위한 첫 단계를 소개함

DDD(Domain-Driven Design) 전략을 활용하여 매장 도메인의 경계를 식별하고 컨텍스트 매핑을 수행함

충돌 방지 계층(ACL)을 통해 외부 도메인 모델이 매장 도메인에 영향을 미치지 않도록 설계함

레거시 시스템의 문제점 분석

레거시 시스템은 단일 DB에 여러 도메인이 섞여 있어 데이터 일관성 유지가 어려웠다. 구체적으로, 매장 정보 변경 시 여러 스쿼드가 DB를 직접 참조하여 비즈니스 로직 중복유지보수 비용 증가를 야기했다. 따라서 도메인 분리를 통해 각 스쿼드의 독립적인 개발 환경을 구축해야 했다.

도메인 경계 식별 및 컨텍스트 매핑

도메인 경계 식별을 위해 도메인 전문가, 레거시 히스토리, 이벤트 스토밍 워크숍을 활용했다. 구체적으로, 바운디드 컨텍스트를 정의하고, 충돌 방지 계층(ACL)을 통해 외부 도메인 모델의 영향을 최소화했다. 결과적으로, 매장 도메인의 독립성을 확보하고, 유연한 시스템 확장을 가능하게 했다.

충돌 방지 계층(ACL)의 역할

충돌 방지 계층(ACL)은 외부 도메인 모델이 매장 도메인 모델을 침범하는 것을 막아준다. 따라서 상품 도메인매장 도메인 간의 데이터 연동 시, 데이터 무결성을 유지하고, 각 도메인의 독립성을 보장한다. 반면, 컨텍스트 매핑 종류보다 비즈니스 요구사항 충족에 집중하는 것이 중요하다.

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