08 May 2023

Contents:

UI 모듈에서 Combine 사용

작성일 : 2023-05-08
작성자 : 안정민

상태

  • 제안됨(Proposed)

배경

  • RIBs 아키텍처 기반으로 인해 UI 모듈에서 RxSwift, RxCocoa를 사용하고 있음
  • UI 모듈은 최소한의 외부 의존성을 가지도록 하기 위해 애플의 Combine 프레임워크를 사용하는 것을 제안함
  • 추후 SwiftUI로 화면을 작성할 때 Combine, Concurrency를 사용해야하므로 나중에 리팩토링하는 비용을 줄이고자 함

결정

  • UI 모듈에서 RxSwift 대신 Combine을 사용하기로 함

이유

  • Combine은 애플에서 제공하는 프레임워크로, Swift 및 애플 플랫폼과의 호환성이 뛰어남
  • 프로젝트의 유지 보수성을 고려하면, Combine을 사용하는 것이 더 나은 선택일 수 있음
  • UI 모듈에서는 복잡한 연산자가 필요없어, RxSwift, RxCocoa, RxRelay를 모두 다 사용할 필요가 없음

결과 및 영향

  • RxSwift에서 Combine으로 전환하는 작업에 시간이 소요될 것임
  • 기존에 RxSwift를 사용한 코드는 전환 과정에서 수정이 필요함
  • 팀원들이 Combine에 대한 학습이 필요할 수 있음
  • 프로젝트의 성능 향상 및 유지 보수성을 기대할 수 있음

결론

  • UI 모듈에서 Combine을 사용하는 것이 프로젝트의 성능 향상 및 유지 보수성을 위한 좋은 선택임이 확인되었음
  • 프로젝트 팀은 이 결정에 따라 전환 작업을 진행하고, 팀원들은 Combine에 대한 학습을 통해 프로젝트에 기여할 것으로 기대됨