domain service와 application service의 차이점
- 도메인 서비스는 domain(entity) / DTO(VO)에 속할 수 없는 도메인 로직을 다룰 때 사용합니다.
- 그러나 애플리케이션 서비스는 도메인 로직을 갖지 않습니다.
- 도메인 서비스, 애플리케이션 서비스 모두 domain / DTO를 상위에서 다루는 stateless(무상태)한 클래스를 의미합니다.
doamin service의 특징
- 비즈니스 의사결정(아래 추가 설명)과 관련된 코드를 담당합니다.
domain service 추출하기
- 비즈니스 로직을 실행할 때 DB, 외부 API등을 통해 필요한 정보를 준비합니다.
- 비즈니스 로직을 실행합니다. 1개 이상의 도메인 객체(모델)을 활용하여 비즈니스 의사결정을 합니다. 모델의 상태가 변경되거나 필요한 정보가 생성됩니다.
- 비즈니스 로직의 실행 결과를 DB나 외부 서비스 등 실제 세계에 반영합니다.
domain service를 분리함으로서 생기는 이점
- 외부의존성이 적어 unit test를 작성하기 편합니다.
- 도메인 지식이 도메인 모델과 근접한 곳에 모여서 유지보수하기 편합니다.
댓글남기기