[Object] 명령-쿼리 분리 원칙

업데이트:

어떤 절차를 묶아 호출 가능하도록 이름을 부여란 기능 모듈을 루틴(routine) 이라고 부른다.
루틴은 다시 프로시저(procedure)함수(function) 로 구분할 수 있다.

  • 프로시저는 부수효과를 발생시킬 수 있지만 값을 반환할 수 없다.
  • 함수는 값을 반환할 수 있지만 부수효과를 발생시킬 수 없다.

명령(command)쿼리(query) 는 객체의 인터페이스 측면에서 프로시저와 함수를 부르는 또 다른 이름이다.

명령-쿼리 분리 원칙의 요지는 오퍼레이션은 부수효과를 발생시키는 명령이거나 부수효과를 발생시키지 않는 쿼리 중 하나여야 한다는 것이다.

명령과 쿼리를 뒤섞으면 실행 결과를 예측하기가 어려워지거나 버그를 양산할 수 있다. 가장 깔끔한 해결책은 명령과 쿼리를 명확하게 분리하는 것이다.

Reference

오브젝트, 코드로 이해하는 객체지향 설계

카테고리:

업데이트:

댓글남기기