DDD 3

[DDD Start] 2.1. 아키텍처 개요 (영역 관계)

아키텍처는 크게 4가지 영역으로 구분이 가능하다. 표현 응용 도메인 인프라스트럭처 웹 어플리케이션에서의 표현 영역은 Http 요청과 같은 방식을 통해 사용자로부터 요청을 인입 받게되고, 해당 요청을 응용 영역에서 요구하는 형식으로 변환하여 응용 영역에 전달하게 된다. @RestController @RequiredArgsConstructor public class ProductController { private final InvestmentService investmentService; private final ModelMapper modelMapper; @PostMapping("/v1/products/{productId}/investments") public void addInvestment( @Pat..

DDD 2021.06.15

DDD vs Transaction Script

DDD와 Transaction Script를 비교한 글을 발견?하여 정리하는 용도로 글을 작성해보았다. Application Design 방식 DDD 방식과 Transaction Script 방식이 존재 두 방식 모두 잘못된 방식은 아니며, 두 방식중 어느 방식을 사용할지는 비즈니스 로직의 복잡성과 연관이 있다. (단순 query를 하고 조회를 하는 작업에서 도메인 모델을 사용하는 것은 불필요하게 복잡하다. 이 경우, domain layer를 제거하여 infrastructure layer를 직접 호출 하는 것이 좋다.) (over-engineering의 위험 부담 때문에, 복잡한 비즈니스 로직을 해결하기 위해서 transaction script 방식을 사용하는 것은 좋지 않다. transaction sc..

DDD 2021.04.08

[DDD Start] 1. 도메인 모델

도메인 모델 패턴 사용자 인터페이스(; Presentation, 표현 계층) 사용자의 요청을 처리하고 사용자에게 정보를 보여주는 영역 사용자는 소프트웨어를 사용하는 사람 뿐만 아니라 외부 시스템이 될 수도 있다. 응용(; Application) 사용자가 요청한 기능을 실행 비즈니스 로직을 직접 구현하지 않으며 도메인 계층을 조합하여 기능을 실행 도메인(; Domain) 시스템이 제공할 도메인의 규칙을 구현 더보기 example) 주문 도메인의 경우, 출고 전에 배송지를 변경할 수 있다. 의 도메인 규칙이 있는 경우, 해당 규칙을 구현한 도메인은 아래와 같이 구현할 수 있다. public class Order { private OrderState state; private ShippingInfo shipp..

DDD 2021.04.06