DDD란?
- Domain-Driven Design의 약자로 도메인 주도 설계라는 뜻을 가짐
도메인이란?
- 컴퓨터 프로그래밍으로 문제를 해결하기 위해 만들 소프트웨어 프로그램을 위한 요구사항, 용어, 기능을 정의하는 학문 영역이 도메인 공학이다.
- 도메인 모델이란 특정 문제와 관련된 모든 주제의 개념 모델이다.
- 도메인 모델은 다양한 엔티티, 엔티티의 속성, 역할, 관계, 제약을 기술한다.
- 문제에 대한 솔루션을 기술하지 않는다.
이론
아키텍처 개요
좋은 의존성을 구성하라!
도메인 모델에 지켜야할것!
도메인 영역의 주요 구성요소
인프라스트럭처(Infrastructure)
애그리거트 로딩 전략
표현 영역과 응용 영역
응용 영역
표현 영역
도메인 모델과 BOUNDED CONTEXT
BOUNDED CONTEXT 간 통합
BOUNDED CONTEXT 간 관계
코딩
관련 어노테이션
엔티티와 밸류
식별자 생성 기능
애그리거트
애그리거트간에 참조
필드 접근 방식을 사용하라!
AttributeConverter를 이용한 밸류 매핑 처리
@SecondaryTable을 이용한 밸류 매핑 설정
밸류 컬렉션을 별도 테이블로 매핑
밸류를 이용한 아이디 매핑
밸류 컬렉션을 엔티티로 매핑하기
ID 참조와 조인 테이블을 이용한 단방향 M:N 매핑
애그리거트의 영속성 전파
JPA를 위한 스펙 구현
도메인 서비스
애그리거트 트랜잭션 관리
이벤트 개요
이벤트, 핸들러, 디스패처 구현