수준 Level
: 입력과 출력까지의 거리
- 시스템의 입려과 출력 모두로부터 멀리 위치할수록 정책의 수준은 높아진다.
- 입력과 출력을 다루는 정책이라면 시스템에서 최하위 수준에 위치한다.
간단한 암호화 프로그램
입력장치에서 문자를 읽기 -> 테이블을 참조하여 번역 -> 번역된 문자를 출력장치로 기록
번역 컴포넌트는 최고수준의 컴포넌트 (입력과 출력에서 가장 멀리떨어져있기 때문)
소스코드 의존성과 데이터흐름은 같은 방향이 아니다.
업무 규칙 Critical Business Data
- 애플리케이션을 업무 규칙과 플러그인으로 구분하려면 업무 규칙을 잘 이해해야한다.
- 업무 규칙은 사업적으로 수익을 얻거나 비용을 줄일 수 있어야 한다.
핵심 업무 데이터
: 핵심 업무 규칙에서 요구하는 데이터
엔티티 Entity
: 컴퓨터 시스템 내부의 객체
- 핵심 업무 데이터를 기반으로 동작하는 핵심 업무 규칙을 구체화한다.
- 엔티티의 인터페이스는 핵심 업무 데이터를 기반으로 동작하는 핵심 업무 규칙을 구현한 함수들로 구성된다.
유스케이스 use case
: 자동화된 시스템이 사용되는 방법을 설명한다.
- 사용자가 제공해야 하는 입력, 사용자에게 보여줄 출력, 해당 출력을 생성하기 위한 처리 단계 기술
- 엔티티 내의 핵심 업무 규칙과는 반대로, 애플리케이션에 특화된 업무 규칙을 설명한다.
- 엔티티 내부의 핵심 업무 규칙을 어떻게, 언제 호출할지 명시하는 규칙을 담는다.
엔티티는 고수준, 유스케이스는 저수준
엔티티는 다양한 애플리케이션에 사용될 수 있도록 일반화된 것으로, 입력과 출력에 멀리 위치한다.
유스케이스는 단일 애플리케이션에 특화되어 있으며, 입력과 출력에 가깝게 위치한다.
유스케이스는 엔티티에 의존한다.
결론
- 업무 규칙을 표현하는 코드는 반드시 시스템의 중심부에 위치해야하며, 덜 중요한 코드는 중심부에 플러그인되어야 한다.
- 업무규칙은 시스템에서 가장 독립적이며 가장 많이 재사용할 수 있는 코드여야 한다.
728x90
반응형
'클린아키텍처' 카테고리의 다른 글
[클린아키텍처] 23장 프레젠터와 험블 객체, 24장 부분적 경계, 25장 계층과 경계 (0) | 2022.03.13 |
---|---|
[클린아키텍처] 21장 소리치는 아키텍처, 22장 클린 아키텍처 (0) | 2022.03.12 |
[클린아키텍처] 17장 경계: 선긋기, 18장 경계 해부학 (0) | 2022.03.10 |
[클린아키텍처] 15장 아키텍처란?, 16장 독립성 (0) | 2022.03.06 |
[클린아키텍처] 12장~14장 컴포넌트 원칙 (0) | 2022.03.06 |
댓글