티스토리 뷰

IT

DDD Start by

비즈붓다 2020. 12. 31. 16:29
728x90

[ 밀줄/연결 ]

 

한 단위 도메인은 다른 하위 도메인과 연동하여 완전한 기능을 제공한다. 예를 들어, 고객이 물건을 구매하면 주문, 결제, 배송, 혜택 하위 도메인의 기능이 엮이게 된다.

특정 도메인이 제공해야 할 모든 기능을 구현하는 것이 아니다. 많은 온라인 쇼핑몰이 자체적으로 배송 시스템을 구축하기보다는 외부 배송 업체의 시스템을 사용하고 배송추적에 필요한 기능만 일부 연동한다..

 

(도메인 모델)

기본적으로 도메인 모델은 특정 도메인을 개념적으로 표현한 것...예를 들어 주문 모델을 객체 모델로 구성한다면.....

도메인 모델을 사용하면 여러 관계자들이 동일한 모습으로 도메인을 이해하고 도메인 지식을 공유하는 데 도움이 됨

도메인을 이해하려면 도메인이 제공하는 기능과 도메인의 주요 데이터 구성을 파악해야 하는데, 이런 면에서 기능가 데이터를 함께 보여주는 객체 모델은 도메인을 모델링하기 적합함....

도메인 모델을 표현할 때는 객체 모델링, 클래스 다이어그램, 상태 다이어그램 등 다양하게 표현할 수 있음

(도메인 모델 패턴)

일반적으로 애플리케이션 아키텍처는 네 개의 계층으로 구성됨

인프라스트럭처: 데이터베이스나 메시징 시스템 같은 외부 시스템과의 연동을 처리함

도메인: 시스템이 제공할 도메인의 규칙을 구현함

응용(Application): 사용자가 요청한 기능을 실행함. 업무 로직을 직접 구현하지 않으며 도메인 계층을 조합해서 기능을 실행함

사용자 인터페이스(UI) 또는 표현(Presentation): 사용자의 요청을 처리하고 사용자에게 정보를 보여줌. 여기서 사용자는 SW를 사용하는 사람뿐만 아니라 외부 시스템도 사용자가 될 수 있음

 

계층 구조에 따르면 도메인과 응용 계층은 '룰 엔진'과 'DB 연동'을 위해 아래와 같이 인프라스트럭처 모듈에 의존된다....인프라스트럭처에 의존하면 '테스트 어려움'과 '기능 확장의 어려움'이라는 두 가지 문제가 발생한다....

(리포지터리)

도메인 객체를 지속적으로 사용하려면 RDBMS, NoSQL, 로컬 파일과 같은 물리적인 저장소에 도메인 객체를 보관해야 한다. 이를 위한 도메인 모델이 리포지터리(repository)이다. 엔티티나 밸류가 요구사항에서 도출되는 도메인 모델이라면 리포지터리는 구현을 위한 도메인 모델이다. 리포지터리는 애그리커트 단위로 도메인 객체를 저장하고 조회하는 기능을 정의한다.

 

[ 자평 ]

 

'도메인 주도 설계'에 관한 책이다. 

시스템 분석과 설계, SW공학을 했지만 개발을 하는 직원이 아니라 도메인 설계가 실무적으로 얼마나 쓰이는지는 모르겠다. 하지만 업무 분석 차원에서 상당히 유용한 생각과 방법, tool 이었다.

 

국내 저자가 쓴 도메인 주도 설계 관련 책이 거의 없는 것으로 안다.

 

좋은 시도...깔끔한 초보자를 위한 책이었다. 

댓글