![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bJGkPK/btr1YKhqOk0/1dU9PUw6fKamZCZSg91Vk0/img.gif)
DTO : Data Transfer Object VO : Value Object 주된 차이점은 두 가지 객체의 사용처에 있다고 보임. Tier/Layer간 다수의 호출을 한다고 했을 때 발생하는 비용을 최소화 하기 위한 전략으로 DTO를 사용. DTO1={VO1의 전체 혹은 일부, VO2의 전체 혹은 일부} 그 외에 차이점은 value validation에 대한 가능성 및 엄격성 측면에서 VO는 충족해야 하고 DTO는 최소 gettter/setter 정도만으로 구성함. 즉, VO는 도메인 내에서 불변성의 값에 대해 중점을 두는 반변 DTO는 전송과 합성(구성)에 초점을 두고 있다고 봄(DTO도 setter를 제거하고 생성자, 빌더를 구성하여 불변성을 유지하기도 함) Data transfer object(..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/yAdO3/btryxreeheb/ilKTR9BbPpPbL10n6k1NB0/img.png)
Aggregation(집약), Composition(합성,구성). 두 패턴 모두 집합에 관련된 패턴으로 차이점에 대해 여러 설명들이 있으나 직접적으로 와닿지 않은 것이 사실임. 나름 고민해 본 결과 원룸이나 오피스텔에 입주할때 가전제품이 필요한데 구매하는 주체가 누구이고 이사갈때 두고 가는지 가져가는가의 차이정도가 어떨까 생각해봄. [Aggregation] 주인이 제공해주느냐 -->이사 갈때 두고 감, 생성 소멸이 내 관할이 아님. 다음 세입자에게 공유됨. [Composition] 내가 구매하느냐 -->이사 갈때 가져가거나 내가 처분해야 함. 객체에 대해 생성(create)과 소멸(destory)에 대한 주체(책임자)는 누구인가? /* Composition */ public class Officetels..