CQRS?

블로그·2023년 10월 6일
0

CQRS란

CQRS: Command and Query Responsibility Segregation, 데이터베이스의 명령(Command)과 조회(Query) 작업을 분리하는 아키텍처 패턴

command vs query

  • 명령(Command)
  • 조회(Query)

cqrs 사용 이유

  • 프로젝트의 복잡성: CQRS 패턴은 복잡한 애플리케이션 및 비즈니스 로직을 다루는 경우
  • 성능 및 확장성 요구: 읽기와 쓰기 작업의 성능 차이가 크거나 확장성이 필요한 경우
  • 보안 및 권한 관리: 데이터의 접근 권한을 엄격하게 관리해야 하는 경우

cqrs 장점

  • 명확한 코드의 의도: 명령 컴포넌트는 상태변경을 담당하고, 쿼리 컴포넌트는 데이터 조회를 담당하기 때문에 코드가 더 명확해진다.

  • 확장성: 읽기와 쓰기 작업이 서로 다른 부하 특성을 가질 수 있기 때문에 각각을 별도로 확장하여 성능을 최적화하는 것이 가능하다.

  • 보안 제어: 명령과 쿼리를 분리함으로써 데이터 조회와 변경에 대한 접근 권한을 다르게 설정할 수 있다.

cqrs 단점

  • 구조의 복잡성: QRS 패턴을 도입하면 두 가지 독립적인 컴포넌트(명령 및 쿼리)가 추가되어 전반적인 구조는 더 복잡해질 수 있다.
    또한 데이터 변경 작업과 데이터 조회 작업이 별도로 처리되므로 코드베이스가 더 많은 파일 및 클래스로 분산될 수 있다.
  • 일관성 유지 어려움: 데이터 변경 작업 후에 즉시 조회 작업을 수행하지 않는 경우 데이터 일관성이 일시적으로 무너질 수 있다.

적용시 고려사항

  • 다른 패턴과의 통합: CQRS 패턴을 사용할 때 다른 패턴과의 통합을 고려해야한다. 예를 들어, 이벤트 소싱과 조합하여 사용할 수 있다.

0개의 댓글