본문 바로가기
클린아키텍처

[클린아키텍처] 19장 정책과 수준, 20장 업무 규칙

by bzerome240 2022. 3. 11.

수준 Level

: 입력과 출력까지의 거리

 

  • 시스템의 입려과 출력 모두로부터 멀리 위치할수록 정책의 수준은 높아진다.
  • 입력과 출력을 다루는 정책이라면 시스템에서 최하위 수준에 위치한다.

 

간단한 암호화 프로그램

입력장치에서 문자를 읽기 -> 테이블을 참조하여 번역 -> 번역된 문자를 출력장치로 기록

https://velog.io/@mertyn88/%ED%81%B4%EB%A6%B0%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-4%EC%A3%BC%EC%B0%A8

번역 컴포넌트는 최고수준의 컴포넌트 (입력과 출력에서 가장 멀리떨어져있기 때문)

소스코드 의존성과 데이터흐름은 같은 방향이 아니다.

 

 

https://velog.io/@mertyn88/%ED%81%B4%EB%A6%B0%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-4%EC%A3%BC%EC%B0%A8
https://velog.io/@mertyn88/%ED%81%B4%EB%A6%B0%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98-4%EC%A3%BC%EC%B0%A8

 

 


 

업무 규칙 Critical Business Data

  • 애플리케이션을 업무 규칙과 플러그인으로 구분하려면 업무 규칙을 잘 이해해야한다.
  • 업무 규칙은 사업적으로 수익을 얻거나 비용을 줄일 수 있어야 한다.

 

핵심 업무 데이터

: 핵심 업무 규칙에서 요구하는 데이터

 

엔티티 Entity

: 컴퓨터 시스템 내부의 객체

  • 핵심 업무 데이터를 기반으로 동작하는 핵심 업무 규칙을 구체화한다.
  • 엔티티의 인터페이스는 핵심 업무 데이터를 기반으로 동작하는 핵심 업무 규칙을 구현한 함수들로 구성된다.

 

 

 

유스케이스 use case

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

  • 사용자가 제공해야 하는 입력, 사용자에게 보여줄 출력, 해당 출력을 생성하기 위한 처리 단계 기술
  • 엔티티 내의 핵심 업무 규칙과는 반대로, 애플리케이션에 특화된 업무 규칙을 설명한다.
  • 엔티티 내부의 핵심 업무 규칙을 어떻게, 언제 호출할지 명시하는 규칙을 담는다.

 

 

엔티티는 고수준, 유스케이스는 저수준

엔티티는 다양한 애플리케이션에 사용될 수 있도록 일반화된 것으로, 입력과 출력에 멀리 위치한다.

유스케이스는 단일 애플리케이션에 특화되어 있으며, 입력과 출력에 가깝게 위치한다.

유스케이스는 엔티티에 의존한다.

 

 

결론

  • 업무 규칙을 표현하는 코드는 반드시 시스템의 중심부에 위치해야하며, 덜 중요한 코드는 중심부에 플러그인되어야 한다.
  • 업무규칙은 시스템에서 가장 독립적이며 가장 많이 재사용할 수 있는 코드여야 한다.

 

 

 

728x90
반응형

댓글