도메인 개념을 담은 객체를 정의하는 일은 겉으로는 매우 쉬워 보여도 거기에는 의미상의 미묘한 차이로 발생할 수 있는 중대한 문제가 잠재돼 있음.
→ 이로써 각 모델 요소의 의미를 명확하게 하고 특정 종류의 객체를 도출하기 위한 설계 수행체계에 부합하는 일정한 구분법이 나타난 것
어떤 객체가 연속성과 식별성을 지니는 것을 의미하는가?
다른 뭔가의 상태를 기술하는 속성에 불과하는가?
→ 이 질문은 ENTITY와 VALUE OBJECT를 구분하는 가장 기본적인 방법
→ 어떤 객체를 정의할 때 해당 객체가 한 패턴이나 다른 뭔가를 분명하게 따르게 한다면 그 객체는 더 명확해지고 견고한 설계를 위한 구체적인 설계 결정을 내리는 데 도움이될 것
또한 여러 도메인 측면 중에는 객체보다는 행동이나 연산으로 좀 더 명확하게 표현되는 것도 있음.
→ 어떤 연산의 책임을 특정 ENTITY나 VALUE OBJECT에서 억지로 맡기보다는 SERVICE로 표현하는 편이 나을 때가 있음
→ SERVICE는 클라이언트 요청에 대해 수행되는 뭔가를 의미함
→ SERVICE는 도메인에도 나타나는데, 소프트웨어가 수행해야 하는 것에는 해당하지만 상태를 주고받지는 않는 활동을 모델링하는 경우가 여기에 해당함
관계형 데이터베이스에 객체 모델을 저장하는 경우처럼 불가피하게 객체 모델의 무결함을 타협해야하는 상황도 있음
→ 본 장에서는 이 같은 현식에 대처해야 할 때도 올바른 방향으로 나아가게하는 지침을 제시함