- 애플리케이션을 업무 규칙과 플러그인으로 구분하려면 업무 규칙이 실제로 무엇인지를 잘 이해해야만 한다
- 업무 규칙은 사업적으로 수익을 얻거나 비용을 줄일 수 있는 규칙 또는 절차
- 예를 들어 대출에 N%의 이자를 부과한다는 사실은 은행이 돈을 버는 업무 규칙
- 이러한 규칙을 핵심 업무 규칙이라고 부를 것
- 이들 규칙은 사업 자체에 핵심적이며, 규칙을 자동화하는 시스템이 없더라도 업무 규칙은 그대로 존재
- 핵심 업무 규칙은 보통 데이터를 요구하고, 이를 핵심 업무 데이터라고 한다
- 핵심 규칙과 핵심 데이터는 본질적으로 결합되어 있기 때문에 이러한 유형의 객체를 엔티티라고 한다
엔티티
- 컴퓨터 시스템 내부의 객체로서, 핵심 업무 데이터를 기반으로 동작하는 일련의 조그만 핵심 업무 규칙을 구체화
- 엔티티 객체는 핵심 업무 데이터를 직접 포함하거나 핵심 업무 데이터에 매우 쉽게 접근 가능
- 그림 20.1 UML 클래스로 표현한 Loan 엔티티
유스케이스
- 모든 업무 규칙이 엔티티처럼 순수한 것은 아니다
- 예를 들어 은행에서 대출 신청자의 신용도에 따른 검증 로직은 유스케이스이다
- 유스케이스는 자동화된 시스템이 사용되는 방법을 설명
- 엔티티 내의 핵심 업무 규칙과는 반대로, 유스케이스는 애플리케이션에 특화된 업무 규칙 설명
- 그림 20.2 유스케이스 예제
- 유스케이스는 엔티티 내부의 핵심 업무 규칙을 어떻게, 그리고 언제 호출할지를 명시하는 규칙을 담는다
- 주목할 또 다른 사실은 인터페이스로 들어오는 데이터와 인터페이스에서 되돌려주는 데이터를 형식 없이 명시한다는 점만 빼면, 유스케이스는 사용자 인터페이스를 기술 X
- 애플리케이션에 특화된 규칙을 설명하며, 이를 통해 사용자와 엔티티 사이의 상호작용을 규정