1. DDD(Domain Driven Design)
- 도메인 위주의 설계 기법을 의미한다
1) 도메인(Domain)
- 애플리케이션 개발에서 흔하게 사용하는 도메인이란 용어는 주로 비즈니스적인 어떤 업무 영역과 관련이 있다
- 애플리케이션 개발에서 필요한 업무 로직에 대한 지식을 도메인 지식(Domain Knowledge)이라고 한다
- 도메인 지식이 많을수록 서비스 계층에서 비즈니스 로직으로 구현해야 하는 것들을 퀄리티가 높게 표현할 수 있다
2) 애그리거트(Aggregate)
- 비슷한 업무 도메인들의 묶음이다
- 비슷한 범주의 연관된 업무들을 하나로 묶어 그룹화한 것이다
3) 애그리거트 루트(Aggregate Root)
- 하나의 애그리거트를 대표하는 도메인을 말한다
- 애그리거트 루트(Aggregate Root)의 기본키 정보를 다른 도메인들이 외래키 형태로 가지고 있다
4) 애그리거트 간의 관계
- 하나의 애그리거트 루트는 N개의 애거리거트 루트와 관계를 가질 수 있다
- N개의 도메인은 하나의 애거리거트 루트와 관계를 가질 수 있다
- 애거리거트 간의 관계를 1:N , N:1 , 1:1로 구분할 수 있다
※ 데이터베이스 테이블 간의 관계는 외래키를 통해 맺어지지만
클래스끼리 관계는 객체의 참조를 통해 맺어진다
※ 참조 링크
▶ https://martinfowler.com/bliki/DDD_Aggregate.html
bliki: DDD_Aggregate
A pattern from Domain-Driven Design describing a cluster of domain objects that can be treated as a single unit for persistant storage and transactions.
martinfowler.com
An In-Depth Understanding of Aggregation in Domain-Driven Design
This article discusses the definition, value, and practices of aggregation in domain-driven design (DDD)
www.alibabacloud.com
'Spring MVC' 카테고리의 다른 글
Spring MVC(1) - 개요 (0) | 2022.09.21 |
---|---|
Spring MVC - Testing - Mockito (0) | 2022.07.14 |
Spring MVC - 데이터 액서스 계층(Data Access Layer) - Spring Data JDBC(샘플 구현) (0) | 2022.07.03 |
Spring MVC - 데이터 액서스 계층(Data Access Layer) - Spring Data JDBC(개요) (0) | 2022.07.03 |
Spring MVC - 데이터 액서스 계층(Data Access Layer) - JDBC (0) | 2022.07.03 |