# CQRS ### 읽기와 쓰기 비교 ^ ^ 읽기 ^ 쓰기 ^ ^ 동작 | 간단한 읽기 | 복잡한 비즈니스 로직 | ^ 캐시 가능성 | 높은 | 캐시 불가능 | ^ 일관성 | 오래된 값 제공 가능 | 트랜잭션 일관성이 있어야 함 | ### 다양한 뷰 모델의 트레이드오프 ^ 방법 ^ 장점 ^ 단점 ^ | 저장소를 그냥 사용한다 | 간단하고 일관성 있는 접근 가능 | 복잡한 패턴의 질의의 경우 성능 문제 발생 | | ORM과 커스텀 질의를 사용한다 | DB 설정과 모델 정의 재사용 가능 | 자체 문법이 있고 나르대로의 문제점이 있는 다른 질의 언어를 한 가지 더 도입해야 한다 | | 수기로 작성한 SQL을 사용한다 | 표준 질의 문법을 사용해 성능을 세밀하게 제어 가능 | DB 스키마 변경 시 수기로 작성한 질의와 ORM을 함께 바꿔야 한다. 정규화가 잘 된 스키마는 여전히 성능상 한계가 있을 수 있다 | | 이벤트를 사용해 별도로 읽기 저장소 만들기 | 읽기 전용 복사본은 규모를 키우기 쉽다. 바뀔 때 뷰를 구축해 질의를 가능한 한 간단하게 만들 수 있다 | 복잡한 기법이다 |