Menu
Menu
Posts List
  1. 🔍 아직도 “베타”인데 왜 RIBs를 쓰는가?
    1. 1. Uber에서 실서비스에 직접 사용한 검증된 구조
    2. 2. 고수준의 모듈화와 테스트 용이성
    3. 3. 명확한 생명주기 관리
    4. 4. 대체재가 마땅치 않음
    5. 5. 커뮤니티와 내부 커스터마이징
  • 요약
  • RIBs가 베타임에도 사용하는 이유

    🔍 아직도 “베타”인데 왜 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는 베타지만, 대규모 앱을 위한 아키텍처적 해답에 가장 가까운 구조이기 때문에 많은 기업이 적극 채택 중이다.”