클린아키텍쳐-업무규칙

업무규칙

업무규칙은 사업적으로 수익을 얻거나 비용을 줄일 수 있는 규칙 또는 절차다.
컴퓨터상으로 구현했는지와 상관없이, 업무규칙은 사업적으로 수익을 얻거나 비용을 줄일 수 있어야 한다.

핵심 규칙과 핵심 데이터는 본질적으로 결합되어 있기 때문에 객체로 만들 좋은 후보가 된다.
우리는 이러한 유형의 객체를 엔티티라고 한다.

엔티티

엔티티는 컴퓨터 시스템 내부의 객체로서, 핵심 업무 데이터를 기반으로 동작하는 일련의 조그만 핵심 업무 규칙을 구체화 한다.

엔티티 객체는 핵심 업무 데이터를 직접 포함하거나 핵심 업무 데이터에 매우 쉽게 접근할 수 있다.
엔티티의 인터페이스는 핵심 업무 데이터를 기반으로 동작하는 핵심 업무 규칙을 구현한 함수들로 구성된다.

엔티티 클래스는 업무의 대표자로서 독립적으로 존재한다.

유스케이스

유스케이스는 자동화된 시스템이 사용되는 방법을 설명한다.
유스케이스는 시스템이 사용자에게 어떻게 보이는지를 설명하지 않는다.

엔티티는 고수준이고 유스케이스는 저수준이다.

요청 및 응답 모델

엔티티 객체를 가리키는 참조를 요청 및 응답 데이터 구조에 포함하려는 유혹을 받을수 있다.
두 객체의 목적은 완전다르다. 두객체는 완전 다른 이유에서 변경 될것이다. 이는 공통 폐쇄원직과 단일 책임 원칙을 위배하게 된다.

결과

업무 규칙은 시스템에서 가장 독립적이며 가장 많이 재사용할 수 있는 코드여야 한다.

참조