개발_프로그래밍

클린 아키텍처 - 22장. 클린 아키텍처 Clean Architecture

_랄프_ 2022. 10. 10. 06:14
728x90

22장 클린 아키텍처 Clean Architecture

다양한 시스템 아키텍처가 있지만 이들의 공통된 목표는 ‘관심사의 분리’이다. 최소한 하나의 업무규칙 계층과 인터페이스 및 그밖의 다른 계층으로 분리해야 한다.

또한 다음의 특징을 지닌다.

  • 프레임워크 독립성 : 업무규칙은 프레임워크에 의존하지 않으며 단지 그것을 도구로 사용할 수 있어야 한다.
  • 테스트 용이성 : 업무규칙은 UI나 데이터베이스, 웹 서버 등의 외부 요소가 없이도 테스트 될 수 있어야 한다.
  • UI 독립성 : 업무규칙을 변경하지 않고 UI를 바꿀 수 있어야 한다.
  • 데이터베이스 독립성 : 업무규칙을 변경하지 않고 DBMS를 바꿀 수 있어야 한다.
  • 모든 외부 에이전시에 대한 독립성 : 업무규칙은 외부 세계의 인터페이스에 대해 전혀 알지 못해야 한다.

 

위 그림의 각 동심원에서 안쪽은 정책(업무규칙)이고 바깥쪽은 메커니즘이다. 안으로 갈수록 고수준이 된다. 소스코드 의존성은 반드시 안으로, 고수준의 전책을 향해야 한다.

우측 하단의 그림처럼 Controller에서 시작하여 Presenter로 향하는 제어의 흐름이 의존성 방향과 반대여야 하는 경우에는, 자바를 예로 들면 인터페이스와 상속을 적절히 사용하여 소스코드 의존성을 제어흐름과 반대가 되게 만들어야 한다.

<23장에서 계속>

 

 

728x90
반응형