Entitiy와 VO의 차이

HG·2022년 10월 28일
0

자바

목록 보기
2/4

Entity는 고유 식별자(pk)를 바탕으로 객체의 정체성을 부여,

VO는 상태를 바탕으로 객체의 정체성을 부여

각각의 도메인들을 위와 같은 Layer로 철저히 분리해서 만드는 것이 DDD의 핵심 설계 방식이다.

설계한 도메인 모듈별로 분리하는 것이 마이크로서비스이다.

즉, DDD의 핵심은 도메인을 서비스 별로 분리하자!

하지만, 모든 도메인에서 많은 객체들을 다루고 있다면,

유지보수 혹은 기능확장성 부분에서 많은 어려움을 겪을 수 밖에 없다.

객체간 상호작용은 점점 복잡해지고, 어떤 객체가 도메인을 대표하는 객체인지 모르게 된다.

이를 해소하기 위해 객체마다 Repository를 하나씩 다 만드는 것은 DDD가 가지는 장점을 없애버린다.

여기서 등장하는게 aggregate이다.

쉽게 말해서, 각각의 도메인을 대표하는 객체가 Aggregate이다.

그렇게 되면, 각각의 도메인에 Repository로 묶어야 객체가 명확해진다.

Top-down 방식으로 계층을 타고내려갈 때 어떤 Entity를 만들기 위해 도메인이 이루어져 명확하게 들어오기도 한다.

위의 예시에서는 Order라는 Domain에서 Order라는 Entity를 만들기 위해

다양한 객체(Object or Class)들이 상호 협력하고 있는 관계를 볼 수 있습니다!

profile
Making Body, Making Food, Making Co?de

0개의 댓글