Clean Architecture - 의존성 규칙과 추상화

luneah·2022년 2월 21일
1
post-thumbnail


각각의 원들은 소프트웨어의 각기 다른 영역을 나타내고 있는데 바깥쪽의 레이어를 메커니즘(Mechanism)이라 하고, 안쪽의 레이어를 정책(Policy)이라고 한다. 그 이유는 클린아키텍처는 모든 소스코드의 의존성은 반드시 아우터에서 이너로 고수준으로 향해야 한다는 의존성 규칙을 가지고 있기 때문이다. 즉, 안쪽 레이어는 바깥쪽 레이어에 관해 전혀 알지 못하며 따라서 바깥쪽 레이어에 선언된 어떠한 이름도 참조할 수 없다는 말이다. 여기서 말하는 이름은 function, class, variable 등 이름이 붙은 모든 소프트웨어 엔티티들을 말한다.


<인사이드 아웃을 통해 묘사된 직관적인 추상화>
추상화란 복잡한 문제에서 핵심만 간추리는 작업을 말하는데 점선면으로 회귀되는 3차원 캐릭터들의 모습이 이를 상징적으로 잘 나타내준다.

  1. 3차원의 캐릭터

  2. 각지게 변화

  3. 분해

  4. 2차원

  5. 결국 캐릭터들은 선으로 변하게 됨


클린 아키텍처에서는 추상화가 많이 될수록 고수준이라고 하는데 예를 들어, 구역 배달료를 구한다 라는 로직은 고수준, A 구역에 속한 배달건에 대한 배달료를 구한다는 것은 저수준에 해당한다. 즉, 고수준은 상위 개념에 해당하고 저수준은 이러한 개념을 실제로 어떻게 구현할지에 대한 세부 사항에 해당하게 되는 것이다. 이에 따라 저수준인 가장 바깥쪽 레이어 프레임워크에서 고수준의 가장 안쪽 레이어인 엔티티로 데이터를 전달한다.

profile
하늘이의 개발 일기

0개의 댓글