DDD
DDD(Domain-Driven Design) 란?
- 도메인이 중심이 되는 개발 방식이며 프로젝트 이해와 커뮤니케이션 수단의 통일성을 만들어 기획자부터 개발자까지의 커뮤니케이션 비용을 최소화하기 위한 설계 방법론
Domain 이란?
- 개발하고자 하는 영역을 분석하고, 그 분석의 결과로 도출된 객체
Domain 구성 요소
Entity
- 고유의 식별 값을 가진다.
- 자신만의 라이프 사이클을 가짐
Value
- 고유의 식별 값이 없다.
- 데이터의 표현
Aggregate
- 관련된 객체들의 묶음
- Aggregate에 속한 객체는 다른 Aggregate에 속하지 않는다.
- Aggregate에는 루트가 존재하는데 루트는 외부에서 접근할 수 있는 유일한 객체이다.
Repository
- Entity를 보관하는 장소
- 하나의 Aggregate에는 하나의 Repository
- Aggregate의 root entity로 CRUD 처리
Service
- 특정 Entity에 속하지 않고 여러 Entity와 Value에 속할 경우 Service에서 도메인 로직을 제공한다. (계좌이체, 할인 금액 계산)
'기타' 카테고리의 다른 글
url 생성 규칙 & RESTful API (0) | 2020.08.08 |
---|---|
스터디 객체지향 이론 (0) | 2020.08.03 |
스터디 JAVA 8 이후 변경점 (0) | 2020.08.03 |
스터디 spring 과 Spring Boot 차이 (0) | 2020.08.03 |
스터디 MSA (0) | 2020.08.02 |
Comment