////
Search
Duplicate
🏐

부록 B. 클린 아키텍처

로버트 마틴의 클린 아키텍처의 구성요소는 다음과 같다.
1.
Entities
시스템의 비즈니스 로직과 객체가 정의된다.
시스템의 핵심으로 외부의 영향을 받지 않아야 하며 가장 변하지 않아야 하는 영역이다.
2.
Use cases
비즈니스 흐름과 엔티티 간의 상호작용을 관리한다.
사용자의 요청을 처리하고 그에 따라 엔터티를 조작한다.
3.
Interface adapters
외부 인터페이스와 Use Cases를 연결하는 역할을 한다.
외부의 요청을 내부 형식으로 변환하거나 내부의 데이터를 외부 형식으로 변환한다.
4.
Frameworks & Drivers
시스템의 외부와 상호 작용한다.
주로 사용자와 상호 작용하거나 데이터베이스나 외부 서비스 등과 통신하는 역할을 담당한다.
클린 아키텍처는 위와 같은 기준으로 시스템의 경계를 나누고, 이 경계의 방향이 항상 단방향이 될 것을 강조한다.
더불어 의존 방향이 항상 바깥 원에서 안쪽 원을 향하도록 강조한다. 내부의 원이 외부의 원에 관해 알고 있어서는 안된다는 말이다. 그래서 각 영역별 관심사 분리라는 목적을 달성한다.
클린 아키텍처는 개념적인 해결책만 제시한다. 이를 위한 구현은 따로 존재하는데, 대표적으로 헥사고날과 양파를 꼽을 수 있다.