Post

업무 규칙

20. 업무 규칙

애플리케이션을 업무 규칙과 플러그인으로 구분하려면 업무 규칙이 실제로 무엇인지를 잘 이해해야만 한다.

업무 규칙은 사업적으로 수익을 얻거나 비용을 줄일 수 있는 규칙 또는 절차

핵심 업무 규칙(Critical Business Rule): 사업 자체에 핵심적이며, 그대로 존재

핵심 업무 데이터(Critical Business Data): 핵심 업무 규칙에서 필요한 데이터

엔티티(Entity): 핵심 규칙 + 핵심 데이터

엔티티

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

엔티티는 순전히 업무에 대한 것이며, 이외의 것은 없다.

유스케이스

모든 업무 규칙이 엔티티처럼 순수한 것은 아니다.

유스케이스는 자동화된 시스템이 사용되는 방법을 설명한다.

엔티티 내의 핵심 업무 규칙과는 반대로, 유스케이스는 애플리케이션에 특화된 업무 규칙을 설명한다.

유스케이스는 엔티티 내부의 핵심 업무 규칙을 어떻게, 그리고 언제 호출할지를 명시하는 규칙을 담는다.

유스케이스는 사용자 인터페이스를 명시하지 않는다.

유스케이스는 사용자와 엔티티 사이의 상호작용을 규정한다.

유스케이스는 애플리케이션에 특화된 업무 규칙을 구현하는 하나 이상의 함수를 제공한다.

엔티티는 자신을 제어하는 유스케이스에 대해 아무것도 알지 못한다.

유스케이스는 엔티티에 의존한다. 반면 엔티티는 유스케이스에 의존하지 않는다.

요청 및 응답 모델

유스케이스는 단순한 요청 데이터 구조를 입력으로 받아들이고, 단순한 응답 데이터 구조를 출력으로 반환한다.

이들 데이터 구조는 어떤 것에도 의존하지 않는다.

요청 및 응답 모델이 독립적이지 않다면, 그 모델에 의존하는 유스케이스도 결국 해당 모델이 수반하는 의존성에 간접적으로 결합되어 버린다.

결론

업무 규칙은 소프트웨어 시스템이 존재하는 이유다.

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

참조

  1. 클린 아키텍처(Clean Architecture)
This post is licensed under CC BY 4.0 by the author.