2.1 네개의 영역
스프링 MVC 프레임워크가 표현 영역을 위한 기술에 해당한다.
- 표현 영역은 사용자의 요청을 해석해서 응용 서비스에 전달하고 응용 서비스의 실행 결과를 사용자가 이해할수 있는 형식으로 변환하여 응답한다.
- 응용 서비스는 로직을 직접 수행하기보다는 도메인 모델에 로직 수행을 위임한다.
- 핵심 로직은 도메인 모델에서 구현
2.2 계층 구조 아키텍처
- 계층 구조의 특성은 상위 계층에서 하위 계층으로의 의존만 존재하고 하위 계층은 상위 계층에 의존하지 않는다.
- 단방향 의존
- 인프라스트럭처에 의존하면 테스트 어려움과 기능 확장의 어려움이라는 2가지 문제가 발생한다.
- 이러한 문제점은 DIP로 해결한다.
DIP
- 저수준 모듈이 고수준 모듈에 의존하게 되는 것
2.4 도메인 영역의 주요 구성요소
요소 설명
엔티티 | 고유의 식별자를 갖는 객체로 자신의 라이프 사이클을 갖는다. 도메인의 고유한 개념을 표현하고 데이터를 포함하며 해당 데이터와 관련된 기능을 함께 제공한다. |
밸류 | 고유의 식별자를 갖지 않는 객체로 주로 개념적으로 하나인 값을 표현할 때 사용된다. |
애그리거트 | 연관된 엔티티와 밸류 객체를 개념적으로 하나로 묶은 것이다. |
리포지터리 | 도메인 모델의 영속성을 처리한다. |
도메인 서비스 | 특정 엔티티에 속하지 않은 도메인 로직을 제공한다. |
큰 프로젝트에서 엔티티와 밸류 값들이 많아 지며 수 많은 애그리거트가 생겨난다.
애그리거트를 사용하면 객체 군집 단위로 모델을 바라볼 수 있게 되며 도메인 모델을 이해하고 구현하게 되며 이를 통해 큰 틀에서 도메인 모델을 관리할 수 있다.
요청 처리 흐름
'Book > 도메인 주도 계발 시작하기' 카테고리의 다른 글
애그리거트 트랜잭션 관리 (1) | 2022.12.28 |
---|---|
도메인 서비스 (0) | 2022.12.28 |
스프링 데이터 JPA를 이용한 조회 기능 (0) | 2022.12.26 |
응용 서비스와 표현 영역 (0) | 2022.12.26 |
리포지터리와 모델 구현 (0) | 2022.12.22 |
애그리거트 (0) | 2022.12.21 |
도메인 모델 시작하기 (0) | 2022.12.20 |