1.1 도메인이란? 온라인 서점은 개발자가 구현해야 하는 소프트웨어의 대상이다. 온라인 서점 소프트웨어는 온라인으로 책을 판매하는 데 필요한 상품 조회, 구매, 결제, 배송 추적 등의 기능을 제공해야 한다. => 온라인 서점은 도메인에 해당한다. 도메인: 소프트웨어로
표현, 응용, 도메인, 인프라스트럭처는 아키텍처를 설계할 때 출현하는 전형적인 네 가지 영역이다. 표현 영역(또는 UI 영역)은 사용자의 요청을 받아 응용 영역에 전달하고 응용 영역의 처리 결과를 다시 사용자에게 보여주는 역할을 한다. 웹 애플리케이션을 개발할 때 많이
도메인 객체 모델이 복잡해지면 개별 구성요소 위주로 모델을 이해하게 되고 전반적인 구조나 큰 수준에서 도메인 간의 관계를 파악하기 어려워진다.주요 도메인 요소 간의 관계를 파악하기 어렵다는 것은 코드를 변경하고 확장하는 것이 어려워진다는 것을 의미한다. 복잡한 도메인을
CQRS: 명령(Command) 모델과 조회(Query) 모델을 분리하는 패턴명령 모델: 상태를 변경하는 기능을 구현할 때 사용조회 모델: 데이터를 조회하는 기능을 구현할 때 사용ex회원 가입, 암호 변경, 주문 취소: 상태(데이터) 변경 기능 -> 명령 모델 사용주문
클라이언트가 요청 파라미터를 포함한 HTTP 요청을 표현 영역에 전달하면, URL, 요청 파라미터, 쿠키, 헤더 등을 이용해서 클라이언트가 원하는 기능을 판별하고 그 기능을 제공하는 응용 서비스를 실행한다.클라이언트가 원하는 기능을 제공하는 것은 응용 영역에 위치한 서
도메인 영역의 코드를 작성하다 보면, 한 애그리거트로 기능을 구현할 수 없을 때가 있다.이때 한 애그리거트에 넣기 애매한 도메인 기능을 억지로 특정 애그리거트에 구현하면 안 된다. 억지로 구현하면 애그리거트는 자신의 책임 범위를 넘어서는 기능을 구현하기 때문에 코드가
한 애그리거트를 두 사용자가 동시에 변경할 때 트랜잭션이 필요하다.트랜잭션마다 리포지터리는 새로운 애그리거트 객체를 생성하므로 운영자 스레드와 고객 스레드는 같은 주문 애그리거트를 나타내는 다른 객체를 구하게 된다.운영자 스레드와 고객 스레드는 개념적으로 동일한 애그리
9.1 도메인 모델과 경계 처음 도메인 모델을 만들 때 도메인을 완벽하게 표현하는 단일 모델을 만드는 것은 어렵다. 한 도메인은 다시 여러 하위 도메인으로 구분되기 때문에 한 개의 모델로 여러 하위 도메인을 모두 표현하려고 시도하면 오히려 모든 하위 도메인에 맞지 않는
쇼핑몰에서 구매를 취소하면 환불을 처리해야 한다. 이때 환불 기능을 실행하는 주체는 주문 도메인 엔티티가 될 수 있다.도메인 객체에서 환불 기능을 실행하려면 다음 코드처럼 환불 기능을 제공하는 도메인 서비스를 파라미터로 전달받고 취소 도메인 기능에서 도메인 서비스를 실
주문 내역 조회 기능을 구현하려면 여러 애그리거트에서 데이터를 가져와야 한다. Order에서 주문 정보를 가져와야 하고, Product에서 상품 이름을 가져와야 하고, Member에서 회원 이름과 ID를 가져와야 한다.조회 화면 특성상 조회 속도가 빠를수록 좋은데, 여