목록DevBookReview (5)
IT recording...
https://adorable-aspen-d23.notion.site/DDD-START-5-JPA-8dba1d6e43d94aa2b9149dea10aa83b7 [DDD START!] 5장 - 리포지터리의 조회 기능(JPA중심) 1. 검색을 위한 스펙 adorable-aspen-d23.notion.site 1. 검색을 위한 스펙 식별자 외에 다양한 조건으로 애그리거트를 찾으려면 어떻게 해야 할까? ⇒ specification(스펙) 사용! 스펙은 애그리거트가 특정 조건을 충족하는지 여부를 검사한다. public interface Specifation{ public boolean isSatisfiedBy(T agg); } → agg(애그리거트 객체)가 조건을 충족하는지 boolean값을 리턴한다. public..
https://adorable-aspen-d23.notion.site/DDD-START-4-JPA-ed21abe14e4147ed90c19161b9d5d7af [DDD START!] 4장 - 리포지터리와 모델 구현 (JPA중심) 1. JPA를 이용한 리포지터리 구현 adorable-aspen-d23.notion.site 1. JPA를 이용한 리포지터리 구현 애그리거트를 어떤 저장소에 저장하느냐에 따라 리포지터리를 구현하는 방법이 다르다. 도메인 모델과 리포지터리를 구현할 때 선호하는 기술은 JPA이다. 데이터 보관소로 RDBMS를 사용할 때 객체 기반의 도메인 모델과 관계형 데이터 모델 간의 매핑을 처리하는 기술로 ORM이 최고다. 다양한 ORM기술 중 ORM 표준인 JPA를 사용해서 리포지터리와 애그리거..
1. 애그리거트 애그리거트는 모델을 이해하는 데 도움을 준다. 일관성을 관리하는 기준이 된다. (→ 복잡한 도메인을 단순한 구조로 만들어 준다.) 한 애그리거트에 속한 객체들은 유사하거나 동일한 라이프사이클을 갖는다. ex) 주문 애그리거트를 만들려면 Order, OrderLine, Orderer와 같은 관련 객체를 함께 생성해야 한다. 한 애그리거트에 속한 객체는 다른 애그리거트에 속하지 않는다. (독립된 객체 군) 각 애그리거트는 자기 자신을 관리할 뿐 다른 애그리거트를 관리하지 않는다. ex) 주문 애그리거트에서 배송지를 변경하거나, 주문 상품 개수를 변경하지만, 회원의 비밀번호를 변경하거나 상품의 가격을 변경하지 않는다. 함께 생성되는 구성요소는 한 애그리거트에 속할 가능성이 높다. ex) 주문할..
https://adorable-aspen-d23.notion.site/DDD-START-2-c3af3ceb6ad948809e418cc832b5d390 [DDD START!] 2장 - 아키텍처 1. 아키테처 영역 adorable-aspen-d23.notion.site
1. 도메인 모델 : 특정 도메인을 개념적으로 표현한 것 ex) 주문 도메인 주문 도메인 내에서 사용하는 기능들을 대략적으로 확인할 수 있다. → 이후 구현 모델로의 변환 과정이 필요하다. 2. 도메인 모델 패턴 표현계층 : 사용자의 요청을 처리하고 사용자에게 정보를 보여준다. 응용계층 : 사용자가 요청한 기능을 실행한다. 업무 로직을 직접 구현하지 않으며 도메인 계층을 조합해서 기능을 실행한다. 도메인 : 시스템이 제공할 도메인의 규칙을 구현한다. 인프라스트럭처 : 데이터베이스나 메시징 시스템과 같은 외부 시스템과의 연동을 처리한다. 도메인 계층 ex) 주문 도메인 - ‘출고 전에 배송지를 변경할 수 있다.’ , ‘주문 취소는 배송 전에만 할 수 있다.’ public class Order{ privat..