서비스란?
소프트웨어 개발에서 말하는 서비스는 클라이언트를 위해 무언가를 해주는 객체를 말한다.
도메인 주도 설계에서 말하는 서비스
- 도메인을 위한 서비스
- 애플리케이션을 위한 서비스
도메인 서비스란?
시스템에는 값 객체나 엔티티로 구현하기 어색한 행동도 있다. 도메인 서비스는 이런 어색함을 해결해주는 객체다.
도메인 서비스는 자신의 행동을 바꿀 수 있는 인스턴스만의 값을 갖지 않는다는 점에서 값 객체나 엔티티와 다르다
도메인 서비스의 사용
생각 없이 모든 처리 코드를 도메인 서비스로 옮기면 다른 도메인 객체는 그저 데이터를 저장할 뿐, 별다른 정보를 제공할 수 없는 객체가 되는 결과는 낳는다.
물론 도메인 서비스로 옮기지 않으면 어색한 행위도 있다. 어떤 행위를 값 객체나 엔티티에 구현할지 아니면 도메인 서비르에 구현할지 망설여진다면 우선 엔티티나 값 객체에 정의하는 것이 좋으며, 도메인 서비스에 행위를 구현하는 것은 가능한 한 피해야 한다.
도메인 서비스 예
도메인 서비스 중에는 데이터스토어 같은 인프라스트럭처와 엮이지 않고 도메인 객체만 다루는 것도 있다.
오히려 그런 도메인 서비스가 진짜 도메인 서비스라고 할 수 있다.
'책터디 > 도메인주도설계철저입문' 카테고리의 다른 글
03.생애주기를 갖는 객체 - 엔티티 (0) | 2022.03.20 |
---|---|
02. 시스템 특유의 값을 나타내기 위한 '값 객체' (0) | 2022.03.17 |
01. 도메인 주도 설계란? (0) | 2022.03.15 |
들어가며. (0) | 2022.03.15 |