[ADR][가상] 아키텍처 의사 결정 기록: UI 모듈에서 Combine 사용
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에 대한 학습을 통해 프로젝트에 기여할 것으로 기대됨