CQRS 패턴을 Redux 와 비교
CQRS 패턴과 Redux 패턴의 플로우를 비교해 보면 크게 다르지 않다라는걸 알 수 있다.
CQRS | Redux |
---|---|
커맨드 모델:
Mutation(변이) 위한 Request (동작을 수행하고 상태 변경을 일으킴)
- 리덕스에서는 액션 디스패치 개념과 동일 (액션을 디스패치 하게 되다면 새로운 커맨드를 서브밋 하게 된다.)
CQRS (Commands)
1 | addPost({ |
Redux (Action)
1 | const addPost = { |
쿼리 모델:
실제 데이터를 fetch 를 하는 동작
- 리덕스에서는 셀렉터 역할과 동일
CQRS (Query)
1 | listPost(): Array<Post> |
Redux (Selector)
1 | const listPost = useSelector((state) => state.posts); |
도메인 이벤트:
변화를 일으키는 행위의 자체
- 리덕스에서는 액션과 동일하나 리듀서에서 처리된 이후의 이벤트라고 불릴 수 있다.
CQRS (Domain Events)
1 | Event({ |
Redux (Action)
1 | const addPost = { |
어그리게이션:
DDD 에서 메인 패턴, 모델의 작은 조각을 표현
- 리덕스에서는 리듀서의 역할이라고 볼 수 있다.
CQRS (Aggregate)
1 | public abstact class Aggregate |
Redux (Reducer)
1 | function reducer(state, action) { |