Command와 Query를 분리하는 원칙. 즉, 한 메소드가 Command 또는 Query 중 하나의 역할만 하도록 한다.
Command와 Query를 분리함으로써 각 메소드의 의미를 명확하게 해준다.
결과를 반환하지 않으며, 시스템의 상태를 변경한다.
ex) reverse()
결과를 반환하며, 시스템의 상태를 변경하지 않는다.
ex) max()
=> 가능하다면 CQS를 지키되, 예외가 필요한 경우에는 허용하는 것이 좋다.
참고) CQS는 명령과 조회를 연산 수준에서 분리하는 반면 CQRS는 개체(object)나 시스템(혹은 하위 시스템) 수준에서 분리한다.
-> http://www.msaschool.io/operation/integration/integration-six/
https://hardlearner.tistory.com/383
https://shoark7.github.io/programming/knowledge/command-and-query-method