도메인 주도 설계 구현-아키텍쳐(4)

도메인 주도 설계 구현

아키텍처

커맨드-퀴리 책임 분리(CQRS)

버트랜드 마이어에 의해 고안된 이원리는 다음과 같은 내용을 따르고 있다.

1
2
3
모든 메소드는 작업을 수행하는 커맨드이거나 데이터를 호출자에게 반환하는 쿼리중 
하나여야 하며, 하나의 메소드가 두역할을 모두 할수 없다. 즉 질의하는 행동이 답을 바꿔서는 안된다.
메소드는 오직 참조적으로 투명해서 다른 부작용을 일으키지 않을때만 값을 반환해야 된다.

객체 수준에서 이는 다음을 의미 한다.

  1. 메소드가 객체의 상태를 수정한다면, 이 메소드는 커맨드이며 값을 반환하면 안된다.
  2. 메소드가 값을 반환한다면 이 메소드는 쿼리이며 직접이든 간접적이든 객체 상태의 수정을 야기해선 안된다.

이벤트 주도 아키텍처

메시지 기반 시스템은 종종 파이프와 필터 스타일을 반영한다.

파이프와 필터 스타일은 큰 문제를 좀더 작은 단계로 나누기 위해 이 패턴을 사용하며
좀 더 쉽게 분산 처리를 이해하고 관리하도록 해준다.
또 여러 시스템이 오직 자신이 할 일만을 걱정하면 되게 해준다.

참조