CQRS

CQRS패턴

25G 2023. 7. 21. 11:08

CQRS패턴

CQRS(Command Query Responsibility Segregation) 패턴은 복잡한 비즈니스 시스템에서 데이터를 효율적으로 관리하기 위해 개발된 것입니다. 이 패턴은 이름에서 알 수 있듯이, 커맨드(명령)와 쿼리(조회)라는 두 가지 별도의 책임을 갖는 서비스를 분리하게 됩니다.

 

CRUD패턴은 일관성을 유지하는데 초점을 맞추지만, 이로인해 복잡성과 확장성 문제가 발생할 수  있습니다. 대용량 데이터를 처리하거나 복잡한 트랜잭션을 수행할 때 CRUD 방식은 성능 저하나 로직을 어렵게 만들 수 있기때문입니다. 이런문제를 해결하기 위해 CQRS패턴이 생겨났습니다.

 

CQRS패턴 이점

1. 확장성: 서비스가 성장하고 변화하는데 따라 쿼리와 커맨드를 별도의 서비스로 분리함으로써 각각의 성능과 확장성을 독립적으로 관리할 수 있습니다.

2. 복잡성 감속: 복잡한 비즈니스 로직을 명확하게 분리하여 개발 및 유지보수를 쉽게 만듭니다.

3. 성능 최적화: 읽기와 쓰기 작업에 대한 데이터 모델과 성능을 최적화할 수 있습니다. 일반적으로 읽기는 쓰기에 비해 훨씬 더 자주 발생하기때문에 이들을 분리하면 각각에 대한 성능을 특정할 수 있습니다.

 

CQRS패턴 주의점

이 패턴은 데이터 일관성을 유지하는데 추가적인 고려가 필요합니다. 또한 시스템의 복잡성이 증가할 수 있으므로 모든 시스템에 적용하는것보단 특정요구사항이나 복잡한 비즈니스 로직이 있는경우에 적용하는것이 좋습니다.

 

'CQRS' 카테고리의 다른 글

CQRS를 NestJs에서 사용예시  (0) 2023.07.21
CQRS패턴 사용예시  (0) 2023.07.21