취준(자소서,면접)/프로젝트 정리

[RIBs아키텍쳐를 사용한 코드 리팩토링 - 개념정리(1)]

soultreemk 2024. 7. 30. 14:08

* 도입 배경:

단순하게 데이터 조회 > 뷰에뿌려주는 조회성 화면은 MVVM패턴으로 충분하다.

하지만 주문, 이체 등 비즈니스로직이 복잡하게 얽힌 화면들은 MVVM의 ViewModel이 결국 거대해지는 Massive ViewController와의 유사한 문제가 발생...
>> Clean Architecture의 필요성

 

 

RIBs 아키텍처의 구성 요소

  1. Router: 네비게이션과 라우팅 로직을 처리합니다.
  2. Interactor: 비즈니스 로직을 담당합니다.
  3. Builder: 모든 구성 요소를 조립하고 의존성을 주입합니다.
  4. Dependency: 각 모듈 간의 의존성을 정의합니다.
  5. Component: Dependency의 구체적인 구현체로, 의존성을 해결합니다.
  6. Presenter: 사용자 인터페이스와 상호작용을 담당합니다.
  7. ViewController: 사용자 인터페이스를 구현합니다.

코드 분석

  • OrderBuilder는 OrderDependency를 상속받아 OrderBuildable 프로토콜을 준수하는 빌더입니다.
  • build(withListener:orderInfo:) 메서드는 필요한 의존성을 주입하고, 모든 구성 요소를 초기화합니다.
  • Interactor는 비즈니스 로직을 포함하며, listener를 통해 다른 모듈과 통신합니다.
  • Router는 화면 전환과 라우팅을 담당합니다.
  • 여러 Builder들이 정의되어 있으며, 각 빌더는 특정 기능 모듈(예: MarginTradeIntroBuilder, OrderHistoryBuilder 등)을 구축합니다.

RIBs 아키텍처의 장점

  1. 모듈화: 각 RIB는 독립적으로 개발되고 테스트될 수 있는 작은 모듈로 분할됩니다.
  2. 재사용성: 잘 정의된 인터페이스를 통해 모듈 간 재사용이 용이합니다.
  3. 유지보수성: 각 모듈의 책임이 명확하게 분리되어 있어 유지보수가 용이합니다.