엔티티 (ENTITY)
- 고유의 식별자를 갖는 객체로 자신의 라이프사이클을 갖는다.
- 도메인 모델의 데이터를 포함하며 해당 데이터와 관련된 기능을 함께 제공한다.
밸류 (VALUE)
- 고유의 식별자를 갖지 않는 객체로 주로 개념적으로 하나인 도메인 객체의 속성을 표현할 때 사용한다.
- 엔티티의 속성으로 사용될 뿐만 아니라 다른 밸류 타입의 속성으로도 사용될 수 있다.
애그리거트 (AGGREGATE)
- 관련된 엔티티와 밸류 객체를 개념적으로 하나로 묶은 것
도메인 서비스 (DOMAIN SERVICE)
- 특정 엔티티에 속하지 않는 도메인 로직을 제공한다.
- 도메인 로직이 여러 엔티티와 밸류를 필요로 할 경우 도메인 서비스에서 로직을 구현한다.
- 예를 들어 '할인 금액 계산'은 상품, 쿠폰, 회원 등급, 구매 금액 등 다양한 조건을 이용하여 구현(도메인 서비스)
- 애그리거트의 상태를 변경하는 것 같으면 도메인 모델일 가능성이 높고 애그리거트를 이용해 계산하는 경우 도메인 서비스일 가능성이 높다고 한다.