개발_프로그래밍

클린 아키텍처 - 20장. 업무규칙 Business Rules

_랄프_ 2022. 10. 5. 15:31
728x90

20장 업무규칙 Business Rules

 

어플리케이션을 업무규칙과 플러그인으로 구분해 보자.

업무규칙에는 컴퓨터 상으로 구현했는지와 상관없이 사업적으로 정의된 핵심 업무 규칙이 있다. 이것은 사람이 수동으로 실행하더라도 유효해야 한다. 가령 대출에 n% 이자를 부과한다는 것 등이 될 수 있다. 업무규칙은 핵심 규칙과 핵심 데이터를 가지고 있으며 이는 엔티티로 표현된다.

 

반면 시스템의 자동화된 동작을 통해 정의되는 업무 규칙도 있는데, 신규 대출을 위해 사용자로부터 정보를 입력받아 신용도를 자동 계산하고 이를 통해 대출을 승인할지 거절할지 결정하는 업무라면 이는 핵심 업무규칙은 아니지만 유스케이스로 분류된다. 유스케이스는 자동화된 시스템이 사용되는 방법을 설명한다.

 

엔티티는 자신을 제어하는 유스케이스에 대해 알지 못하며 반대로 유스케이스는 엔티티를 잘 알고 있다.

엔티티는 다양한 어플리케이션에서 사용될 수 있도록 일반화된 것이므로 고수준이고 유스케이스는 단일 어플리케이션에 특화되어 있으며 해당 시스템의 입출력에 보다 가깝기 때문에 상대적으로 저수준이라고 할 수 있다. 따라서 유스케이스가 엔티티에 의존하고 반대로 엔티티는 유스케이스에 의존하지 않는다.

마찬가지로 유스케이스는 Request 및 Respose 모델에 의존해서는 안 된다. 엔티티와 요청/응답 모델은 많은 데이터를 공유하므로 이 둘을 함께 묶고 싶은 유혹이 들지만 이를 이겨내야 한다. 공통폐쇄원칙(13장)과 단일책임원칙(7장)을 위배하는 것이다.

<21장에서 계속>

 

728x90
반응형