-
[RIBs아키텍쳐를 사용한 코드 리팩토링 - 개념정리(1)]취준(자소서,면접)/프로젝트 정리 2024. 7. 30. 14:08
* 도입 배경:
단순하게 데이터 조회 > 뷰에뿌려주는 조회성 화면은 MVVM패턴으로 충분하다.
하지만 주문, 이체 등 비즈니스로직이 복잡하게 얽힌 화면들은 MVVM의 ViewModel이 결국 거대해지는 Massive ViewController와의 유사한 문제가 발생...
>> Clean Architecture의 필요성RIBs 아키텍처의 구성 요소
- Router: 네비게이션과 라우팅 로직을 처리합니다.
- Interactor: 비즈니스 로직을 담당합니다.
- Builder: 모든 구성 요소를 조립하고 의존성을 주입합니다.
- Dependency: 각 모듈 간의 의존성을 정의합니다.
- Component: Dependency의 구체적인 구현체로, 의존성을 해결합니다.
- Presenter: 사용자 인터페이스와 상호작용을 담당합니다.
- ViewController: 사용자 인터페이스를 구현합니다.
코드 분석
- OrderBuilder는 OrderDependency를 상속받아 OrderBuildable 프로토콜을 준수하는 빌더입니다.
- build(withListener:orderInfo:) 메서드는 필요한 의존성을 주입하고, 모든 구성 요소를 초기화합니다.
- Interactor는 비즈니스 로직을 포함하며, listener를 통해 다른 모듈과 통신합니다.
- Router는 화면 전환과 라우팅을 담당합니다.
- 여러 Builder들이 정의되어 있으며, 각 빌더는 특정 기능 모듈(예: MarginTradeIntroBuilder, OrderHistoryBuilder 등)을 구축합니다.
RIBs 아키텍처의 장점
- 모듈화: 각 RIB는 독립적으로 개발되고 테스트될 수 있는 작은 모듈로 분할됩니다.
- 재사용성: 잘 정의된 인터페이스를 통해 모듈 간 재사용이 용이합니다.
- 유지보수성: 각 모듈의 책임이 명확하게 분리되어 있어 유지보수가 용이합니다.
'취준(자소서,면접) > 프로젝트 정리' 카테고리의 다른 글
[디자인패턴 변환 코드 리팩토링 - 최종 선택 패턴과 그 이유] (1) 2024.09.16 [디자인패턴 변환 코드 리팩토링- 클린아키텍쳐가 필요한 이유] (0) 2024.08.19 [디자인패턴 변환 코드 리팩토링 - 도입배경 및 고민사항들] (0) 2024.07.31 [MVVM패턴 적용 후기 - 2차 RxSwift를 사용한 신규화면 개발] (0) 2024.07.30 [MVVM패턴 적용 후기 - 1차 해외주식예약주문 리팩토링] (0) 2024.07.30