❐ Description
이번 장은 앞선 내용들을 활용한 실습 예제를 살펴보는 장이다.
이번 장 내용중 `새로운 기능 도입 : 할당량 검사` 파트만 간단하게 정리해보자.
❐ 새로운 기능 도입 : 할당량 검사
요약하자면, 기존에 존재하는 `해운 모듈`에 `영업 관리 시스템`을 통합하는 것이다.
`영업 관리 시스템`은 `해운 모듈`에 존재하는 도메인 모델을 염두해두고 만든 것이 아니기 때문에,
Booking Application에서 `영업 관리 시스템`를 수용하게 되면, 결합도가 높아지고 유지 보수가 어려워진다.
그럼 어떻게 서로 다른 모델을 가진, 두 모듈을 유연하게 통합할 수 있을까?
책에서는 Anti Corruption Layer(오류 방지 계층)를 소개해주고 있다.
약간 Adapater Pattern과 유사하다고 생각했는데, 아래 블로그에 관련해서 정리가 잘 되어 있다.
Anti corruption layer 정리 블로그 : 바로가기
책에서 Allocation Checker는 `Anti Corruption Layer`의 역할을 수행한다고 서술했다.
Allocation Checker의 역할은 아래와 같다고 생각한다.
- 외부 시스템과의 상호작용을 캡슐화
- Sales Management System과의 직접적인 연동을 피하고, Allocation Checker가 이를 중개
- 운영 시스템에서 조회한 Enterprise Segment 정보를 도메인 내부에서 바로 사용할 수 있도록 변환
- 도메인 로직과 운영 시스템 간의 경계를 명확히 함
- 도메인 모델에서 바로 Sales Management System을 참조하면 결합도가 높아지고 유지보수가 어려워짐
- Allocation Checker가 이를 담당하면 도메인 모델의 순수성을 유지할 수 있음.
- 외부 시스템 변경 시 영향 최소화
- `운영 시스템`의 인터페이스가 변경되더라도, Allocation Checker만 수정하면 되므로 변경최소화
'Architecture > DDD' 카테고리의 다른 글
Bounded Context (0) | 2025.03.17 |
---|---|
6-3. Repository (0) | 2024.12.06 |
6-2. Factory (0) | 2024.12.03 |
ReadMe.md (0) | 2024.12.03 |