본문 바로가기

책리뷰/도메인 주도 개발 시작하기(DDD핵심 개념 정리부터 구현까지)

도메인 주도 개발(DDD)시작하기 CQRS

728x90
반응형

목차

    단일 모델의 단점

     

    • 주문 내역 조회 기능 구현시 여러 애그리거트에서 데이터를 가져와야함 

     

    • 시스템 상태를 변경할 때와 조회할 때 단일 도메인 모델을 사용하면 고민해야할 부분이 생김
    • 조회화면 특성상 즉시로딩이나 지연로딩으로 처리해야함

     

    CQRS

    • Command Query Responsibility Segregation
    • 복잡한 도메인에 적합 
    • CQRS를 사용하면 각 모델에 맞는 구현 기술 선택 가능
      • ex) 명령 모델 > 도메인 모델(JPA), 조회모델 > DB테이블에서 SQL 쿼리(마이바티스)

    • 조회모델은 응용서비스가 존재하지 않음
    • 컨트롤러에서 바로 DAO를 실행해도 무방함 

     

    • 명령모델은 트랜잭션을 지원하는 RDBMS, 조회모델은 성능이 좋은 메모리기반 NoSQL사용도 가능 
    • 서로 다른 데이터 저장소 사용시 데이터 동기화 시점에 따라 구현 방식이 달라짐(이벤트 사용해서 동기화)

     

    CQRS 장단점

    • 장점
      • 명령모델 구현할 때 도메인 자체에 집중할 수 있음
      • 조회 성능을 향상시키는데 유리함(조회단위로 캐시기술 적용 가능)
    • 단점
      • 구현해야할 코드가 많음 
      • 도메인이 단순하거나 트래픽이 많지 않으면 조회전용 모델을 따로 만들 때 얻을 이점을 따져봐야함 
      • 더 많은 구현 기술이 필요함 
    728x90
    반응형