카테고리 없음

Clean Architecture

WOO_JOO 2022. 11. 26. 23:24

Clean Architecture는 소프트웨어를 개발하는 개발 방법론 중 하나 입니다.

 

당장 구글에 Clean Architecture를 검색해보면 수두룩하게 나오는 이미지 입니다.

저도 처음에 Clean Architecutre를 공부 할때 엄청 많이 봤던 이미지 입니다.

 

Clean Architecture는 각 Layer를 3가지로 나누었습니다. Presentor, Data, Domain 영역 이렇게 구분 하였습니다.

위 방법을 고안해낸 이유는 여러가지라 생각하지만 저는 아래와 같다고 생각합니다.

1. 편하고 수월한 유지보수를 위해

2. 모듈의 구분화를 통해 재사용

3. 의존성 최소화

이 세가지가 정말 중요하다고 생각합니다. 

 

이제 각 Layer들을 Android를 예로 들어 적어 보겠습니다. 

Presentor : Activity나 Fragment, ViewModel 등이 위치할 Layer, Domain 영역을 의존

Data : 비즈니스 로직이 위치할 Layer 예를 들자면 네트워크 통신, DB로 부터 값을 가져오는 로직, Domain 영역을 의존

Domain : 어디에도 간섭하지 않는 Model, Interface 등이 있으며 이 것들을 제공할 UseCase가 위치할 Layer, 그 어디 Layer에도 의존하지 않고 매우 독립적인 영역


위 3가지의 Layer를 활용해서 소프트웨어를 개발 하는 것이 Clean Architecture 기반의 개발 입니다.

각 기능별로, 더 세분화 하자면 함수별까지도 UseCase 별로 나누고, UseCase는 비즈니스 로직을 가지고, Presentor는 이 UseCase를 활용 하는 아키텍처 라고 말씀 드릴 수 있습니다.