CQRS란?

CQRS(Command And Query Responsibility Segregation) 명령과 조회의 책임을 분리한다.

B마트 전시 도메인 CQRS 적용하기 #우아콘2021 #둘째날_새로운여정 - YouTube (6).png

비즈니스 로직은 적절히 나눠지지만, 조회하는데 사용하는 모델은 하나의 모델이 명령과 조회에 모두 사용되는 경우가 많음.

히스토리를 다 알고있지 않은 경우, 자칫 잘못하면 특정 데이터를 사용할수 있고, 리펙토링을 시도할때 다른 영역에 영양을 줄 수 있다보니 훨씬 더 까다로워지고 어려워지는 문제를 마지함.

이 문제를 해결하기 위해 큰 도메인 안에서 명령과 조회에 해당하는 영역을 나눠 문제를 해결하는 것이 CQRS가 바라는 방향

B마트 전시 도메인 CQRS 적용하기 #우아콘2021 #둘째날_새로운여정 - YouTube (8).png

B마트 상품 데이터 구조

B마트 전시 도메인 CQRS 적용하기 #우아콘2021 #둘째날_새로운여정 - YouTube (2).png

고객에게 전달되는 데이터 흐름대로 DB 스키마를 설계하는 경우는 많지 않다.

B마트 전시 도메인 CQRS 적용하기 #우아콘2021 #둘째날_새로운여정 - YouTube (3).png

데이터 스키마는 정규화 형태로, 전시 도메인에선 비정규화 하는 작업 필요.