본문 바로가기

개발/회고

Clean Architecture 개념

반응형

Clean Architecture

iOS 도메인에 있는 Clean Architecture의 다양한 구성 요소 사이의 데이터 흐름을 살펴보자.
교차 경계 섹션에서는 데이터 흐름이 단반향이어야 하는 방법에 대해 논의했다.

 

iOS에서는 Controller와 View의 책임이 ViewController에 의해 처리되기 때문에 위의 방법을 따르는 것은 어렵다. 
ViewController는 사용자의 입력과 이벤트를 수신하고 적절한 View를 렌더링한다. 

iOS에는 ViewController의 역할을 다르게 본, 아래와 같은 아키텍처가 있다.

Clean Architecture에 대해 짧게 살펴보자.

대체로 UI와 데이터베이스 코드는 프레임워크에 많은 의존성을 띄고 있다.  
Clean Architecture은 프레임워크 관련 코드를 계층 분리하여 의존성을 분리하려는 목적이다. 

  • 코드를 분리하면 문제가 발생한 관련 코드를 찾기 쉬워지며 들이는 시간을 줄일 수 있다. (Easy of User)
  • 프레임워크와의 분리 때문에 Unit test가 훨씬 쉬워진다.  (Testability)
  • 개체 간의 책임 분리로 논리적 설계가 가능하다 (Distribution)

이러한 장점은 다른 아키텍쳐 MV(X) 패턴에도 포함된다. 

Clean Architecture layers 

 

각 원은 과정 코드에서 분리되어야 하는 층을 나타낸다.

  • Entity 
    • 기본 규칙을 나타내는 단순한 개체.
    • 데이터의 구조 또는 방법의 집합이 될 수 있다.
    • 모든 엔터프라이즈 애플리케이션에 의해 공유되어야 한다.
  • Use Cases(사용 사례) 
    • 응용프로그램에 특정한 비즈니스 로직을 나타내며, 하나 이상의 실체를 사용할 수 있다.
  • Interface Adapter 
    • Use Cases에서 주어진 데이터를 UI, Web, Database 등 최종 사용에 가장 적합한 원시 데이터 구조에서 변환한다. 
  • Framework Layer 
    • 데이터의 사용이 정리된 곳으로, mobile context에 적용되었을 때, View에 대해 이야기한다.

 

출처 - https://medium.com/@saad.eloulladi/clean-architecture-for-ios-viper-vip-c19de40b71e2

반응형

'개발 > 회고' 카테고리의 다른 글

Bastard Injection란?  (0) 2021.04.28
비트마스킹 (bitmasking)  (0) 2021.04.14
Graph QL 소개  (0) 2021.03.26
[Xcode] 단축키  (0) 2021.03.01
[알고리즘] 공부 순서  (0) 2020.07.22