: 일반적인 애플리케이션의 아키텍쳐는 표현 | 응용 | 도메인 | 인프라스트럭쳐 - DB, 4개의 영역으로 구성
영역 | 설명 |
사용자 인터페이스 또는 표현 | 사용자의 요청을 처리하고 사용자에게 정보를 표시, 여기서 사용자는 소프트웨어를 사용하는 사람뿐만 아니라 외부 시스템일수도 있다. |
응용 | 사용자가 요청한 기능을 실행, 업무 로직을 직접 구현하지 않으며 도메인 계층을 조합해서 기능을 실행 |
도메인 | 시스템이 제공할 도메인 규칙을 구현 |
인프라스트럭쳐 | 데이터베이스나 메시징 시스템과 같은 외부 시스템과의 연동을 처리 |
: 도메인 계층은 도메인의 핵심 규칙을 구현, 주문 도메인의 경우, ‘출고 전에 배송지를 변경할 수 있다’라는 규칙과 ‘주문 취소는 배송 전에만 할 수 있다’라는 규칙을 구현한 코드가 도메인 계층에 위치하게 됨
: 핵심 규칙을 구현한 코드는 도메인 모델에만 위치하기 때문에 규칙이 바뀌거나 규칙을 확장해야 할 때 다른 코드에 영향을 덜 주고 변경 내역을 모델에 반영할 수 있게 됨