cqrs

    도메인주도개발 시작하기 11장 CQRS

    CQRS란 Command and Query Responsibility Segregation 의 약자로, 데이터 저장소로부터의 읽기와 업데이트 작업을 분리하는 패턴을 말한다 여러 애그리거트의 데이터가 필요하면 다양한 방안의 구현방법을 고민해야한다. 식별자를 이용해서 애그리거트를 참조하는 방식을 사용하여 가져와한다. 상태 변경 기능은 주로 한 애그리거트의 상태를 변경한다. 반면, 조회 기능은 두 개 이상의 애그리거트가 필요할 때가 많다. 상태를 변경하는 범위와 조회하는 범위가 일치하지 않기 때문에 단일 모델로 두 종류의 기능을 구현하면 모델이 불필요하게 복잡해진다. 위 복잡도를 해결하기 위해 사용하는 방법이 CQRS이다. CQRS : 명령(Command)을 위한 모델과 조회(Query)를 위한 모델을 분리하..

    도메인주도설계 5장

    CQRS : 명령 모델과 조회 모델을 분리하는 패턴. 상테(데이터) 변경 기능 구현시에는 명령 모델, 데이터를 보여주는 기능을 구현할 때는 조회 모델 사용 # 검색을 위한 스펙 스팩 Specification : 검색 조건을 다양하게 조합해야 할 때 사용할 수 있는 것 agg는 애그리거트 루트, agg는 검색 결과로 리턴할 데이터 객체가 됨. Spec 인터페이스 예시 Spec 인터페이스 구현 예시 만약 리포지터리가 메모리에 모든 애그리거트를 보관하고 있다면 다음과 같이 사용 가능하나, 실제로는 모든 데이터를 메모리에 저장을 못하기에 사실상 위와 같이 사용 불가능 실제 스펙은 사용하는 기술에 맞춰 구현하게 됨 # 스프링 데이터 JPA를 이용한 스펙 구현 JPA 크리테리아 API를 같이 이용 스펙은 and 혹..