[Object] 명령-쿼리 분리 원칙
업데이트:
어떤 절차를 묶아 호출 가능하도록 이름을 부여란 기능 모듈을 루틴(routine) 이라고 부른다.
루틴은 다시 프로시저(procedure) 와 함수(function) 로 구분할 수 있다.
- 프로시저는 부수효과를 발생시킬 수 있지만 값을 반환할 수 없다.
- 함수는 값을 반환할 수 있지만 부수효과를 발생시킬 수 없다.
명령(command) 과 쿼리(query) 는 객체의 인터페이스 측면에서 프로시저와 함수를 부르는 또 다른 이름이다.
명령-쿼리 분리 원칙의 요지는 오퍼레이션은 부수효과를 발생시키는 명령이거나 부수효과를 발생시키지 않는 쿼리 중 하나여야 한다는 것이다.
명령과 쿼리를 뒤섞으면 실행 결과를 예측하기가 어려워지거나 버그를 양산할 수 있다. 가장 깔끔한 해결책은 명령과 쿼리를 명확하게 분리하는 것이다.
댓글남기기