도메인 주도 설계 첫걸음-Part2
05_ 간단한 비즈니스 로직 구현
트랜잭션 스크립트 : 단순 비즈니스 로직 설계 아키텍처로 트랜잭션을 적용해서 작업 성공/실패를 보장하도록 하는 구조이다.
액티브 레코드 : 비즈니스 로직은 단순하지만 자료구조가 복잡한 경우 선택하는 아키텍처로 액티브 레코드 객체는 간단한 CRUD와 가공 로직을 가질 수 있다.
06_복잡한 비즈니스 로직 다루기 (도메인 모델 패턴)
밸류 오브젝트 : 불변의 객체로 값을 통해 식별할 수 있음으로 ID 값이 없는 객체다.
데이터 + 행동도 모델링이 가능하다.
애그리게이트 : 트랙잭션 경계를 공유하는 엔티티 계층으로 애그리게이트 경계에 속한 데이터는 서로 강력한 일관성을 유지해야 된다.
도메인 이벤트를 통해 외부 엔티티와 소통할 수 있다.
도메인 서비스 : 비즈니스 로직만 담은 상태가 없는 객체이다.
07_시간 차원의 모델링
애그리게이트 상태에 대한 모든 변경사항을 도메인 이벤트로 표현한다. 이 패턴은 분석과 최적화가 가능하도록 모든 이력에 대한 로그를 남기기 때문에 데이터에 대한 깊은 관심을 둘 수 있다.
08_아키텍처 패턴
계층형 아키텍처 : 계층 아래로 책임 이동, 비즈니스 로직과 데이터 접근 구현으로 액티브 레코드 기반 시스템에 적합하다. 포트와 어댑터 : 비즈니스 로직 중심으로 데이터 접근 계층의 의존성 분리, 핵사고날, 클린코드 아키텍처로 도메인 모델 구현에 적합하다. CQRS : 강한 데이터 일관성을 보장해야 되는 커맨드와 데이터 제공용인 읽기모듈로 나눌 수 있고 이벤트소싱 모델에 적합하지만 다른 아키텍처에도 적용할 수 있다.
[참고도서]