CQRS 패턴

DB에 대한 Command(Write), **Query(read)**가 분리된 디자인 패턴

성능 및 확장성을 최대화하기 때문에 애플리케이션 복잡도가 클 경우 도움이 된다.

Untitled


기존 아키텍처

DB에 Query, Update 하는데 동일한 DTO를 사용하는 간단한 CRUD다

하지만 애플리케이션이 복잡해지면 애플리케이션은 READ시 다양한 쿼리를 수행하게 되고

이에 따라 모든 데이터를 주고 받는 DTO의 경우 성능 저하를 초래하거나, 모델 복잡도를 초래할 수 있다

Untitled


CQRS

Command는 Create, Update, Delete 작업을 하며 Query는 Read 작업

간단한 CQRS 모델

Untitled

격리 수준을 높이기 위해 Write DB와 Read DB를 구분해서 구축