[iOS] 클린 아키텍처 (1) - 찍먹해보기

Madeline👩🏻‍💻·2024년 7월 1일
2

iOS study

목록 보기
57/61

Clean Architecture 찍먹

아키텍처 패턴의 선택은 앱의 확장성, 유지보수성, 전반적인 품질에 중요한 영향을 미친다.

일반적으로 채택되는 패턴들을 먼저 알아보자.

MVC

  • Model - View - Controller
  • 가장 심플함
  • ViewController가 거대해질 수 있음. 관리가 어렵다.

MVVM

  • Model - View - ViewModel
  • MVC의 단점 해결
  • 데이터 바인딩을 사용해서 View와 ViewModel의 상호작용
  • 관심사 분리, ViewController의 복잡성 감소
  • 이번엔 ViewModel이 거대해질 수 있음

VIPER

  • View -Interactor - Presenter - Entity - Router
  • 더 세분화해서 모듈화, 유지보수성을 높인 분리 구조
  • 대규모 앱에 적합

RIBs

  • Router - Interactor - Builder
  • Uber에서 개발한 아키텍쳐 패턴
  • 대규모 앱에 적합

Redux

  • Store - Action - Reducer - View
  • Facebook에서 개발한 패턴
  • 상태 관리, 데이터 흐름을 중앙 집중화

Clean Swift(VIP 패턴의 변형)

  • ViewController - Interactor - Presenter - Router - Worker - Configurator
  • ViewController: UI를 표, 사용자 입력을 처리
  • Interactor: 비즈니스 로직 처리
  • Presenter: Interactor에서 받은 데이터를 가공, ViewController에 전달
  • Router: 화면 전환 관리
  • Worker: 복잡한 작업 처리
  • Configurator: 구성 요소를 초기화, 상호 연결

Clean Swift

Get Started with Clean Swift - Clean SwiftClean Swifthttps://clean-swift.com

Clean Swift의 효능

  • MVC 대신 Clean Swift 아키텍처를 구현하면 코드를 더 쉽게 관리하고 이해할 수 있다.
  • 비즈니스 로직을 명확히 분리하여, 뷰 컨트롤러가 비대해지는 문제를 해결한다.
  • 단위 테스트가 용이하며, TDD를 통해 코드의 신뢰성을 높일 수 있다.
  • Clean Swift는 다른 프레임워크를 배우지 않고도 기존 코드를 더 잘 관리할 수 있다.
  • Clean Swift의 VIP 사이클을 통해 앱의 흐름을 여러 스토리보드로 분할할 수 있으면, 세그웨이를 계속 사용할 수 있다.

주요기능

Clean Swift Xcode 템플릿을 사용하여 모든 구성 요소를 자동으로 생성한다.

템플릿을 사용하여 중복 코드를 줄이고, 비즈니스 로직에 집중할 수 있다.

Clean Swift iOS 아키텍처를 사용하여 Massive ViewController 문제를 해결한다.

https://medium.com/@hyleedevelop/clean-swift-vip-architecture-tutorial-in-uikit-for-beginners-part-2-a646f24d19af

클린 아키텍처 in Swift

UI Layer

  • UI, 화면에 표시, 사용자 입력

→ ViewController

Application Layer

  • 비즈니스 로직 담당

→ Presenter

Domain Layer

  • 핵심 비즈니스 로직 담당

→ UseCase

Infrastructure Layer

  • 외부 시스템과의 통신 담당
  • 데이터베이스, 네트워크 등

→ Repository

profile
🍎 Apple Developer Academy@POSTECH 2기, 🍀 SeSAC iOS 4기

0개의 댓글