도메인주도설계(3)
-
도메인 주도 설계 - 리포지토리의 조회 기능
이 장에서 다룰 내용 스펙 동적 인스턴스와 @Subselect 검색을 위한 스펙 애그리거트를 찾을 때 식별자를 이용하는 것이 기본. 다양한 검색 조건으로 애그리거트를 찾아야한다면? 스펙 1 2 3 public interface Specification { boolean isSatisfiedBy(T agg); } Colored by Color Scripter cs 스펙은 애그리거트가 특정 조건을 충족하는지 여부를 검사하는 것. 애그리거트가 조건에 맞으면 true를, 틀리면 false를 리턴합니다. 예) OrdererSpec - 스펙 정의 1 2 3 4 5 6 7 8 9 10 11 12 public class OrdererSpec implements Specification { private String o..
2022.05.09 -
도메인 주도 설계의 모듈 구성(패키지 구성)
패키지 구성을 설계하는 것에는 한 가지 정답만 있는 것은 아니지만 이 번 시간에는 도메인 주도 설계에서 일반적으로 사용되는 패키지 구성을 소개하고자 합니다. 규칙1. 아키텍처의 각 영역은 별도 패키지에 위치합니다. ui: 표현 영역 application: 응용 영역 domain: 도메인 영역 infrastructure: 인프라 영역 규칙2. 도메인이 크면 하위 도메인별로 모듈을 나눕니다. 모듈 구성 예시) com.myshop ㄴ order ㄴ member ㄴ catalog ㄴ ui ㄴ application ㄴ infrastructure ㄴ domain ㄴ product ㄴ category 도메인이 복잡하다면 도메인 모델과 도메인 서비스를 다음과 같이 별도 패키지에 위치시킬 수도 있습니다. com.mysh..
2022.01.10 -
도메인 주도 설계 - 도메인 영역의 구성요소
스프링을 사용하는 백엔드 개발자들에게 컨트롤러와 서비스란 아주 자연스러운 웹 어플리케이션 아키텍처의 구성요소일 것 입니다. 컨트롤러와 서비스, 레포지터리를 구현하면 자연스럽게 웹 어플리케이션이 개발이 됩니다. 이처럼 도메인 주도 설계에서도 도메인 영역을 구성하는 대표적인 유형들의 객체가 있습니다. 기존 객체 모델링은 자유도가 높아 문제 영역을 파고들수록 여러 층의 복잡한 계층 구조를 만들게 될 가능성이 높습니다. DDD에서는 도메인 모델링 구성 요소의 역할에 따른 유형을 정의하고 이러한 규칙에 따라 도메인을 모델링하면 단순하게 설계가 가능합니다. 엔티티(Entity) 엔티티는 다른 엔티티와 구별할 수 있는 식별자를 가진 도메인의 실체 개념을 표현하는 객체입니다. 식별자는 고유하되 엔티티의 속성 및 상태는..
2022.01.06