🔍 아직도 “베타”인데 왜 RIBs를 쓰는가?
1. Uber에서 실서비스에 직접 사용한 검증된 구조
- RIBs는 Uber가 대규모 모듈 앱을 안정적으로 관리하기 위해 만든 아키텍처.
- Uber Eats, Uber Driver 등 실제 수천만 유저가 사용하는 앱에 직접 적용되어 실전 검증 완료됨.
- 즉, “베타”라 해도 실질적으로는 완성도 높은 구조로 간주됨.
⠀
2. 고수준의 모듈화와 테스트 용이성
- 각 RIB 단위는 독립적이고 책임이 명확함 → 단위 테스트, 유닛 테스트 작성 용이
- 대규모 팀에서 각 피처를 분리된 RIB 단위로 개발/유지보수 가능
- iOS 앱이 커지면 커질수록 → 유지보수와 QA에서 큰 이점
⠀
3. 명확한 생명주기 관리
- RIBs는 Router와 Interactor 기반으로 뷰와 비즈니스 로직을 분리
- 메모리 릭, 상태 전이 문제를 최소화
- 복잡한 화면 전환이나 상태 제어가 필요한 서비스(예: 영상통화, 채팅 등)에 적합
⠀
4. 대체재가 마땅치 않음
- Clean Architecture도 존재하지만, 실제 코드 수준에서 의존성 역전과 동적 라우팅까지 풀어내긴 어렵고, 매뉴얼 구현이 많음
- VIPER는 너무 분산되고 무거움
- MVVM은 작고 단순한 앱엔 좋지만 상태가 많아지면 단일 ViewModel이 비대해짐
⠀➡️ RIBs는 대규모 앱에서 의존성 관리, 상태 분리, 테스트 편의성을 모두 만족시키는 구조
5. 커뮤니티와 내부 커스터마이징
- GitHub에서는 베타지만, 많은 기업들이 자체적으로 확장하거나 포크해서 안정화한 버전을 사용 중
- 예: 카카오페이, 토스, 라인, 하이퍼커넥트 등은 자체적으로 “RIBs 기반 커스텀 프레임워크”를 운용 중
⠀
요약
“RIBs는 베타지만, 대규모 앱을 위한 아키텍처적 해답에 가장 가까운 구조이기 때문에 많은 기업이 적극 채택 중이다.”