728x90
DDD(Domain Driven Design)
- 도메인 위주의 설계 기법을 의미한다.
도메인(Domain)
- 현실세계에서 접할 수 있는 비지니스적인 업무 영역을 뜻한다.
- 도메인 지식(Domain Knowledge)는 배달 애플리케이션으로 예를 들면 고객이 음식을 주문하는 과정, 주문받은 음식을 처리하는 과정, 배달하는 과정 등을 말한다.
- 도메인 지식을 자세히 알수록 보다 높은 퀄리티의 애플리케이션을 만들 수 있다.
애그리거트(Aggregate)
- 비슷한 범주의 연관된 업무들을 하나의 그룹으로 묶어놓은 것
- 그 중 대표적인 도메인을 애그리거트 루트(Aggregate Root)라고 한다.
- 애그리거트 루트는 다른 도메인들과 직관접적으로 연관이 되어 있는 도메인이 선정된다.
애그리거트 객체 매핑 규칙
- 모든 엔티티 객체의 상태는 애그리거트 루트를 통해서만 변경할 수 있다.
- 하나의 동일한 애그리거트 내에서는 엔티티 간에 객체로 참조한다.
- 애그리거트 루트 간 참조는 ID로 참조한다.
- 1:N 관계일 때는 AggregateReference 클래스를 사용하여 감싸주는 방법을 통해 객체 참조가 아닌 ID참조가 이루어진다.
- N:N 관계일 때는 참조할 테이블에 해당되는 클래스의 @ID 필드를 맴버 변수로 가지는 별도의 참조 클래스를 사용한다.
728x90
'어딘가에 맞춰질 퍼즐 조각들' 카테고리의 다른 글
@Value 애너테이션으로 환경변수를 설정하고 참조하는 방법 1분 요약 정리 (0) | 2023.01.12 |
---|---|
프로젝트 용어 정리 (0) | 2022.12.19 |
[JAVA] 추상클래스(Abstract class)와 인터페이스(Interface) (0) | 2022.09.19 |
[JAVA] 메서드 오버로딩(Overloading)과 오버라이딩(Overriding) (1) | 2022.09.19 |
[JAVA] public class VS class (0) | 2022.09.17 |