본문 바로가기
Architecture

[Clean Architecture 정리] 20장. 업무 규칙

by 테리는당근을좋아해 2022. 8. 28.

업무 규칙

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

업무 규칙 중 사업 자체에 핵심적이며, 자동화된 시스템이 없더라도 존재하는 업무 규칙을 '핵심 업무 규칙(Critical Business Rule)',

핵심 업무 규칙에서 요구하는 데이터를 '핵심 업무 데이터(Critical Business Rule)'이라고 하고, 이 둘은 엔티티(Entity) 객체로 묶을 수 있다.

 

 

엔티티

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

엔티티 객체는 핵심 업무 데이터를 포함하고, 엔티티의 인터페이스는 핵심 업무 규칙의 구현한 함수로 구성된다.

엔티티는 업무에 관한 것이지 어떤 시스템으로 구성할지, 어떻게 저장할지 등의 방식과는 무관하다.

 

 

유스케이스

유스케이스는 입력으로부터 출력까지의 단계까지 자동화된 시스템이 사용되는 규칙에 대해서 설명한다.

 

엔티티의 핵심 업무 규칙과는 반대로 유스케이스는 애플리케이션 특화(application specific) 업무 규칙을 설명한다.

유스케이스는 엔티티 내부의 핵심 업무 규칙을 언제 어떻게 호출할 지를 명시하고 엔티티와 사용자 간 상호 작용을 규정하는 것이지

시스템에 데이터가 들어오고 나가는 방식에 대해서는 무관하다.

 

유스케이스는 시스템의 입출력과 가까이 있으므로 저수준 개념, 엔티티 객체는 시스템의 인출력과 멀리 있으므로 고수준 개념이다.

따라서 엔티티는 유스케이스에 대해서 알지 못하며, 유스케이스는 엔티티를 의존하게 된다.

 

 

요청 및 응답 모델

요청/응답 모델과 유스케이스는 독립적이다.

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

데이터를 사용자나 다른 컴포넌트와 통신하는 방법에 대해서 알 수 없어야 하고, 이들 데이터 구조는 어떤 것에도 의존하지 않는다.

 

엔티티와 요청/응답 모델 또한 독립적이다.

엔티티와 요청/응답 모델이 많은 데이터를 공유하지만, 시간이 지날수록 두 객체는 다른 시점/이유로 변경된다.

따라서 공통 폐쇄 원칙과 단일 책임 원칙으로 두 객체를 분리해야 한다.

 

서적 : http://www.yes24.com/Product/Goods/77283734

 

클린 아키텍처 - YES24

살아있는 전설이 들려주는 실용적인 소프트웨어 아키텍처 원칙『클린 코드』와 『클린 코더』의 저자이자 전설적인 소프트웨어 장인인 로버트 C. 마틴은 이 책 『클린 아키텍처』에서 이러한

www.yes24.com

 

댓글