입력 유효성 검증
- 일단 서비스의 책임은 아니다.
- 책은 입력 모델(input model)(서비스 DTO)이 이문제를 다루도록 하는 예제를 설명한다.
비즈니스 규칙 검증
- 서비스와 도메인 엔티티는 비즈니스 규칙 검증의 책임을 공유한다.
- 일반적으로 검증을 위해 모델에 접근할 필요가 있는 규칙인 경우 비즈니스 규칙이라고 판단할 수 있다.
Rich domain model
vs Anemic domain model
풍부한 도메인 모델
- 애플리케이션의 코어에 있는 엔티티에서 가능한 많은 도메인 로직이 구현된다.
- 엔티티들은 상태를 변경하는 메서드를 제공하고, 비즈니스 규칙에 맞는 유효한 변경만을 허용한다.
빈약한 도메인 모델
- 엔티티 자체가 장히 얇다.
- getter, setter 메서드만 포함하고 어떤 도메인 로직도 가지고 있지 않다.
- 즉, 도메인 로직이 서비스에 구현돼 있다는 것
서비스의 리턴값
- 입력과 비슷하게 출력도 가능하면 각 유스케이스 (서비스 로직)에 맞게 구체적일수록 좋다.