목록개발 서적/도메인 주도 개발 시작하기 (3)
csct3434
애그리거트도메인 객체 모델이 복잡해지면 개별 구성요소 위주로 모델을 이해하게 되고 전반적인 구조나 큰 수준에서 도메인 간의 관계를 파악하기 어려워진다. 주요 도메인 요소 간의 관계를 파악하기 어렵다는 것은 코드를 변경하고 확장하는 것이 어려워진다는 것을 의미한다. 이때 상위 수준에서 모델을 정리하면 도메인 모델의 복잡한 관계를 이해하는데 도움이 된다. 상위 수준에서 모델이 어떻게 엮여 있는지 알아야 전체 모델을 망가뜨리지 않으면서 추가 요구사항을 모델에 반영할 수 있다.상위 수준에서 모델을 조망할 수 있는 방법이 바로 애그리거트다.한 애그리거트에 속한 객체는 유사하거나 동일한 라이프 사이클을 갖는다.한 애그리거트에 속한 객체는 다른 애그리거트에 속하지 않는다.애그리거트는 독립된 객체 군이며 각 애그리거트..
네 개의 영역표현 영역 (Presentation)표현 영역은 사용자의 요청을 받아 응용 영역에 전달하고 응용 영역의 처리 결고를 다시 사용자에게 보여주는 역할을 한다.웹 애플리케이션의 표현 영역은 HTTP 요청을 응용 영역이 필요로 하는 형식으로 변환해서 응용 영역에 전달하고, 응용 영역의 응답을 HTTP 응답으로 변환하여 전송한다.예를 들어 표현 영역은 웹 브라우저가 HTTP 요청 파라미터로 전송한 데이터를 응용 서비스가 요구하는 형식의 객체 타입으로 변환해서 전달하고, 응용 서비스가 리턴한 결과를 JSON 형식으로 변환해서 HTTP 응답으로 웹 브라우저에 전송한다.응용 영역 (Application)public class CancelOrderService { @Transactional pub..
도메인이란?도메인 : 소프트웨어로 해결하고자 하는 문제 영역한 도메인은 여러 하위 도메인으로 구성된다 (ex : 온라인 서점 - 회원, 주문, 카탈로그, 리뷰, 혜택, 배송, 결제, 정산)한 하위 도메인은 다른 하위 도메인과 연동하여 완전한 기능을 제공한다. (ex : 고객이 물건을 구매하면 주문-혜택-결제-배송 하위 도메인의 기능이 엮이게 됨)요구사항의 이해요구사항 분석 및 설계는 개발에 있어서 첫 단추 (Garbage In, Garbage Out)개발과 관련된 도메인 전문가, 관계자, 개발자가 같은 지식을 공유하고 직접 소통할수록 도메인 전문가가 원하는 제품을 만들 가능성이 높아짐개발자와 각 도메인의 전문가가 직접 대화해야 정보가 왜곡되고 손실되는 것을 방지할 수 있음도메인 전문가 만큼은 아니더라도 ..