업무 규칙
- 업무 규칙은 사업적으로 수익을 얻거나 비용을 줄일 수 있는 규칙 또는 절차다.
- 예) 대출에 n% 이자를 부과한다는 것은 은행이 돈을 버는 업무 규칙이다.
- 이러한 핵심 업무 규칙은 보통 데이터를 요구한다. (핵심 업무 데이터)
- 핵심 규칙과 데이터는 객체로 만들 좋은 후보이고 이를 엔티티라 한다.
엔티티
- 컴퓨터 시스템 내부의 객체로서 핵심 업무 데이터를 기반으로 동작하는 일련의 조그만 핵심 업무 규칙을 구체화한다.
- 핵심 업무 데이터를 직접 포함하거나 매우 쉽게 접근할 수 있다.
- 이 클래스는 데이터베이스, 사용자 인터페이스, 서드파티 프레임워크에 대한 고려 사항들로 인해 오염되어서는 안 된다.
- 엔티티는 순전히 업무에 대한 것이다.
유스케이스
- 모든 업무 규칙이 엔티티처럼 순수한 것은 아니다.
- 유스케이스는 자동화된 시스템이 사용되는 방법을 설명한다.
- 사용자의 입력, 사용자에게 보여줄 출력, 그리고 출력을 생성하기 위한 처리 단계를 기술
- 엔티티와는 다르게 유스케이스는 애플리케이션에 특화된 업무 규칙이다.
- 엔티티 내부의 핵심 업무 규칙을 어떻게, 언제 호출할지를 명시하는 규칙을 담는다.
- 다만 유스케이스를 봐서는 웹을 통해 전달되는지, 콘솔 기반인지 구분할 수 없어야 한다.
- 유스케이스는 엔티티를 알지만, 엔티티는 유스케이스를 몰라야 한다.
- 유스케이스는 단일 애플리케이션에 특화되어 있기 때문에 해당 시스템의 입출력에 가깝게 위치하기 때문이다.
결론
업무 규칙은 사용자 인터페이스나 데이터베이스 같은 저수준 관심사에 의해 오염되어서는 안 되며, 업무 규칙 코드는 시스템의 심장부에 위치해야 한다. 업무 규칙은 시스템에서 가장 독립적이며 가장 많이 재사용할 수 있는 코드여야 한다.