출처 https://incheol-jung.gitbook.io/docs/study/ddd-start/3
상위수준 모델을 개별 객체 단위로 다시 그려보면 위와 같다.
개별객체만 보면 이해하기가 어렵다.
위 그림만보고 상위수준에서 개념을 파악하려면 더 많은 코드를 보고 도메인 전문가와 더 많은 대화를 나눠야 비로소 상위수준에서 모델간의 관계가 이해된다.
주요 도메인 개념간의 관계를 파악하기 어렵다는 것은 곧 코드를 변경하고 확장하는것이 어려워진다는 것을 의미한다.
상위 수준에서 모델이 어떻게 엮여 있는지 알아야 전체 모델을 망가뜨리지 않으면서 추가 요구사항을 모델에 반영할수 있는데 세부적인 모델만 이해한 상태로는 코드를 수정하기가 두렵기 때문에 코드 변경을 최대한 회피하는 쪽으로 요구사항을 협의하게 된다.
꼼수를 써서 추가하는것은 장기적인 관점에서 코드를 더 수정하기 어렵게 만들기도 한다.
복잡한 도메인을 상위수준에서 알기 쉽게 표현한것이 애그리것이다.
애그리것은 관련된 객체를 하나로 군집해서 묶어준다.
애그리것으로 묶어서 바라보면 좀더 상위수준에서 도메인 모델간의 관계를 파악할수 있다.