[성능 패턴] CQRS 패턴

CQRS 패턴 - 용어

  • Command
    • 데이터의 결과를 위해 수행하는 작업
    • 새로운 레코드를 삽입하거나 기존 레코드를 업데이트 또는 삭제하는 작업
    • 예:
      • 사용자 추가
      • 리뷰 수정
      • 댓글 삭제
  • Query
    • 오직 데이터를 읽어서 호출자에게 반환
    • 예:
      • 카테고리의 모든 상품 조회

CQRS 패턴

  • CQRS에서는 명령파트와 쿼리파트를 완전히 분리한다.
  • 비즈니스 로직, 입력 값 검증, 권한체크 등은 복잡한 작업은 Command 서비스에서 수행한다.
  • 각 파트는 개별 프로그래밍 언어의 데이터 모델을 사용해 독립적으로 발전해갈 수 있게 된다.

CQRS 장점

  • 두 가지 작업 유형으로 시스템을 최적화할 수 있다.
    • 특히 읽기와 쓰기 작업이 빈번하다면
  • 고확장성

CQRS - 동기화

CQRS - 단점

  • Command와 Query 데이터베이스 간의 최종적 일관성(Eventually Consistency)만 보장할 수 있다.
  • 어느 정도 오버헤드와 복잡성

참고

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유