DDD11 [DDD] 도메인 서비스(Domain Service) 본 포스팅은 DDD 를 공부하면서 정리하기 위한 포스팅입니다. 출처: 도메인 주도 개발 시작하기 - DDD 핵심 개념 정리부터 구현까지 (저자. 최범균) 1. 도메인 서비스(Domain Service) 란? 비지니스 로직을 개발하다보면, 애그리거트 1가지만 가지곤 개발할 수 없는 기능이 발생할 수 있습니다. 예를 들면, 아래와 같은 기능이 있다고 가정해보겠습니다. 판매처에서 할인쿠폰을 발급해 구매자가 해당 판매처의 상품을 구매시, 쿠폰을 통해 금액을 할인받을 수 있는 기능 위 기능을 개발하기 위해 필요한 애그리거트는 대략 3가지 정도로 생각해볼 수 있습니다. (물론, 더 디테일하게 고민해보면 더 많아질 수 도, 더 적어질 수 도 있습니다.) 주문 애그리거트 : 실제 주문 정보를 생성 상품 애그리거트 : .. 2023. 6. 14. [DDD] 응용 서비스 구현과 표현 계층 본 포스팅은 DDD 를 공부하면서 정리하기 위한 포스팅입니다. 출처: 도메인 주도 개발 시작하기 - DDD 핵심 개념 정리부터 구현까지 (저자. 최범균) 1. 응용 서비스 구현 방향 1-1. 도메인 로직 구현 안하기 DDD 를 공부하면서 가장 중요하게 생각했던 내용이라 해도 과언이 아닙니다. 저 같은 경우, 과거에는 비지니스 로직을 Application 계층(Service 계층) 에 개발하는 트랜잭션 스크립트 패턴을 많이 활용했다면, 요즘 DDD 를 공부하며 비지니스 로직을 Domain 계층에 개발하는 도메인 모델 패턴을 많이 활용하고 있습니다. DDD 는 도메인 로직을 도메인 계층에 구현하는 것을 대원칙으로 두고 있습니다. 주문 취소 로직을 작성한다 했을 때, 트랜잭션 스크립트 패턴으로 개발한다면 아래.. 2023. 6. 7. [DDD] 주문 애그리거트 구현하기(with JPA) 본 포스팅은 DDD 를 공부하면서 정리하기 위한 포스팅입니다. 출처: 도메인 주도 개발 시작하기 - DDD 핵심 개념 정리부터 구현까지 (저자. 최범균) 이번 포스팅에선 쇼핑몰 도메인의 일부분인 주문 도메인을 애그리거트 개념을 설명하면서 코드로 어떻게 구현될 수 있는지를 알아보겠습니다. 설명의 기준은 Spring 과 JPA를 예시로 적용할 것이므로 간단하게 프로젝트 세팅 방법부터 알아보겠습니다. 0. 준비하기 - 프로젝트 세팅 및 설정 추가하기 스프링 프로젝트를 생성할 때 저는 https://start.spring.io/ 페이지를 이용합니다. 해당 URL 로 접속하면 아래와 같은 화면이 나타납니다. https://start.spring.io/ 위 화면에서 아래 순서로 설정해주시면 됩니다. 가장 기본으로 .. 2023. 6. 3. [DDD] 애그리거트(Aggregate) 이해하기 본 포스팅은 DDD 를 공부하면서 정리하기 위한 포스팅입니다. 출처 : 도메인 주도 개발 시작하기 - DDD 핵심 개념 정리부터 구현까지 (저자. 최범균) 1. 애그리거트(Aggregate) 애그리거트는 도메인 영역을 구성하는 요소 중 하나로, 관련된 도메인 객체들의 집합을 뜻합니다. 어떠한 도메인 모델을 이해하기 위해, 상위 수준의 도메인 모델과 하위 수준의 도메인 모델을 이해하는데 아래와 같은 예시로 설명할 수 있습니다. 상위 수준 도메인 모델의 경우, 비교적 큰 개념 간의 관계를 나타내는 반면 하위 수준 도메인 모델의 경우, 주로 객체 단위의 관계를 표현합니다. (클래스 다이어그램의 간략화 버전 정도로 이해하셔도 될 듯 합니다.) 문제는 상위 수준 도메인 모델을 기반으로 하위 수준 도메인 모델을 도.. 2023. 6. 2. [DDD] DDD - 엔티티(Entity)와 밸류(Value) (feat. Java) DDD 를 공부한 내용을 기록하기 위한 포스팅 입니다. 출처 : 도메인 주도 개발 시작하기 - DDD 핵심 개념 정리부터 구현까지 (저자. 최범균) 1. DDD 란? DDD 는 Domain Driven Design 의 약자로, 소프트웨어를 개발함에 있어 도메인을 중심으로 모델링하고 개발하는 개발 기법을 말합니다. 1-1. 도메인 (Domain) 도메인은 "소프트웨어를 통해 문제를 해결하고자 하는 업무영역" 을 의미합니다. 우리가 일상생활에서 사용하는 서비스들(ex. 네이버, 쿠팡, 카카오 등등) 도 하나의 거대한 도메인이라고 할 수 있습니다. 하지만, 도메인을 정의하기 용이하게 하기 위해 너무 거대한 영역의 경우 작은 여러 단위의 하위 도메인을 묶어 큰 도메인을 구성하게 됩니다. 아래에는 여러 하위 도메.. 2023. 5. 28. 이전 1 2 다음