도메인 모델 패턴
- 도메인/비즈니스 로직을 구성하는 아키텍처 패턴의 한 가지
- 도메인 모델의 속성과 행위를 모두 포함하는 도메인의 오브젝트 모델이다
- 오브젝트 모델이기 때문에 복잡한 연관 관계, 커스톰 속성, 상속 등을 사용할 수 있다
- 트랜잭션 스크립트는 **하나의 업무절차(tx)를 처리하기 위한 스크립트(메소드)**를 만들고 비즈니스 로직을 순서대로 코드로 작성하는 방법
엔티티(Entity)
- 도메인 모델을 만들 때 사용하는 패턴
- 도메인 안에 있는 대상이나 개념
- 고유한 식별자 identity 를 가지고 이를 통해서 개별적으로 구분된다
- 생명주기life cycle를 가진다. 시간의 흐름에 따라 상태가 변경될 수 있다.
값 객체 (Value Object)
- 도메인 모델에서 식별자가 필요하지 않고 속성/값으로만 구별되는 오브젝트
- 엔티티가 너무 많은 책임을 가지는 것을 방지하고 특정 속성 관련 행위를 분리해서 엔티티를 더 집중된 상태로 유지하게 한다
- 원시 타입보다는 도메인 개념을 더 명시적으로 나타내서 모델의 명확성을 높인다
- 생성 이후에 상태가 변하지 않고 변경이 필요하면 새로운 객체로 교체한다
- 풍부한 기능을 가진다
- 자체 유효성 검사도 가능하다
- 개념에 포함된 여러 개의 속성을 가질 수 있다