Closed jaejeong1 closed 1 year ago
명령(시스템 데이터 변경) 역할을 수행하는 구성 요소와 쿼리(시스템 데이터 조회) 역할을 수행하는 구성 요소를 나누는 것.
명령
쿼리
책임
분리
명령과 조회에 단일 모델을 사용하면?
출처 : https://martinfowler.com/bliki/CQRS.html https://www.youtube.com/watch?v=H1IF3BUeFb8 https://www.youtube.com/watch?v=xf0kXMTFJm8
CQRS : Command Query Responsibility Segregation
명령(시스템 데이터 변경) 역할을 수행하는 구성 요소와 쿼리(시스템 데이터 조회) 역할을 수행하는 구성 요소를 나누는 것.
명령
쿼리
책임
분리
CQRS가 필요한 경우
명령과 조회에 단일 모델을 사용하면?
단점
단점이 발생하는 이유
구현 형태 예시
1. 같은 프로세스, 같은 DB
2. 같은 프로세스, 같은 DB, 다른 테이블
3. 같은 프로세스, 다른 DB
4. 다른 프로세스, 다른 DB
다른 DB로 변경 전파
1. 명령이 직접 쿼리 DB를 수정하는 방식
2. 변경 내역을 기록하고, 별도 전파기를 이용해서 내역을 전달하는 방식
3. DB가 제공하는 CDC 이용
다른 DB 사용 시 주의 사항
- 데이터 유실
- 허용 가능 지연 시간
- 중복 전달
출처 : https://martinfowler.com/bliki/CQRS.html https://www.youtube.com/watch?v=H1IF3BUeFb8 https://www.youtube.com/watch?v=xf0kXMTFJm8