DDD
1. 도메인 주도 설계란?
- 도메인 주도 설계란 계속 진화하는 소프트웨어를 만들어내기 위한 개념과 설계 방식을 에릭 에반스의 지식과 경험을 토대로 정리한 것입니다.
1.1 도메인이란?
- 도메인이란 소프트웨어가 대상으로 하는 영역입니다.
- 업무용 애플리케이션이라면 비즈니스 활동 자체가 도메인입니다.
1.2 도메인 주도 설계의 목표
- 일반적인 소프트웨어 개발은 아래와 같은 V 모델을 따릅니다.
- 도메인 주도 설계의 목표는 V 모델의 최상위의 비즈니스와 최하위의 소프트웨어를 직접적으로 강하게 연결하는 것입니다.
- 또한 도메인 주도 설계는 비즈니스 환경이 변하고 발전하는 동안에도 계속해서 존속하는 것을 목표로 합니다.
V 모델
V 모델은 폭포수 모델을 확장한 소프트웨어 개발 방법론입니다. V자 형태로 왼쪽에는 분석/설계 단계(요구사항 분석 → 시스템 설계 → 상세 설계 → 구현), 오른쪽에는 테스트 단계(단위 테스트 → 통합 테스트 → 시스템 테스트 → 인수 테스트)가 배치됩니다. 각 개발 단계마다 대응하는 테스트 단계가 있어, 검증과 확인이 체계적으로 이루어집니다.
1.3 도메인 주도 설계의 특징
- 93p
- 에릭 에반스의 도메인 주도 설계 서문에 따르면, 도메인 주도 설계의 특징은 다음의 세 가지입니다.
- 복잡한 업무 로직에 초점을 맞춘다.
- 모델에 기반해서 설계한다
- 리팩터링을 자주 수행한다.
2. 도메인 주도 패턴
- 유비쿼터스 언어
- 경계 컨텍스트
- 값 객체
- 애그리게이트
- 리포지터리
3. 도메인 모델
- 도메인 주도 설계에서 복잡한 업무 규칙이 적용된 소프트웨어를 쉽고 안전하게 변경하기 위해 어떤 기법을 사용할까요?
- 그 중심이 바로 도메인 모델입니다.
- 모델은 방대한 정보 중에서 핵심을 단순하고 알기 쉽게 정리한 구조입니다.
- 도메인 모델은 소프트웨어의 대상 영역(도메인)인 비즈니스 활동의 복잡한 부분을 요점으로 정리하고 단순화한 것입니다.