개발 관련 책 읽기/DDD 시작하기(2)
-
애그리거트
✅ 아래 내용들에 대해서 알아보자 - 애그리거트 - 애그리거트 루트 - 트랜잭션 범위 애그리거트 애그리거트(aggregate, 집합)는 연관된 엔티티와 밸류 객체를 개념적으로 하나로 묶은 것이다. 그림으로 같이 보자. 아래 그림을 보면 주문, 분류, 상품, 리뷰, 결제, 회원 등으로 개념적으로 나눈 것을 볼 수 있다. 애그리거트로 단위로 분류하게 되면 복잡한 도메인을 이해,관리하기 쉽고 수많은 객체들을 애그리거트 단위로 묶어서 바라보면 상위 수준에서 도메인 모델 간의 관계를 파악하기가 용이하다. 그리고 모델을 이해하는데 도움을 줄 뿐만 아니라 일관성을 관리하는 기준이 된다. 그로 인해 복잡도가 낮아지고 도메인 기능을 확장하고 변경하는데 필요한 노력도 줄어들게 된다. 애그리거트는 관련된 모델을 하나로 모았..
2023.05.15 -
DDD 아키텍처
✅ 아래 내용들에 대해서 알아보자 - 도메인이란? - DDD 아키텍처 - DIP 도메인이란 도메인이란 소프트웨어로 해결하고자 하는 문제영역을 의미한다. 온라인 서점으로 예를 들면 상품 조회, 구매, 결제, 배송등의 기능이 해당된다. 쉽게 이야기하면 기능별로 쪼갠다고 이해하면 좋을 것 같네요 ㅎ Order라는 주문 클래스가 있다고 가정하겠습니다. 기존의 서비스 로직에서 해당 로직들을 처리하는 프로세스와 다르게 주문 클래스에 비즈니스 로직을 위임함으로써 도메인에 종속된 로직들은 Order객체에 위임하고 있다. (DDD는 도메인 클래스에 연관된 로직을 넣는다는 느낌? ㅎㅎ) 기존 서비스 레이어에 로직을 실행하던 방식 public class OrderService { private final OrderRepos..
2023.04.29