반응형
취업 준비를 하고 있는 요즘 자격요건에 RxSwift에 관련된 내용을 종종 발견할 수 있었다. 이전에 진행한 프로젝트에서는 RxSwift가 아닌 Combine을 활용해 작업을 진행했어서 RxSwift에 대한 내용을 정리해보고자 한다.
RxSwift란?
Swift에서는 비동기 프로그래밍을 할 때 RxSwift, Combine을 사용한다. 그 중 RxSwift는 Reactive eXtension + Swift로 관찰 가능한 시퀀스를 사용하여 비동기 및 이벤트 기반 프로그램을 구성하기 위한 라이브러리이다.
RxSwift를 사용하는 이유
- Swift에 반응형 프로그래밍을 더해주어, 비동기 코드를 동기화 코드처럼 작성 가능
- 일관성이 없는 비동기 코드를 하나의 비동기 코드로 개발 가능
- 서로 다르게 구현한 로직을 조합하기 쉬워지기 때문에, 콜백 지옥에서 탈출 가능
- Data Binding이 쉬워짐
- 확장이 어려운 아키택처 패턴을 해결 가능 (Ex. MVVM의 Data Binding)
- Thread 처리가 쉬워짐
- 다양하고 편리한 Operator들이 제공
RxSwift 와 Combine 비교
- Rx와 Combine은 거의 비슷하다. 하지만 조금씩 다른 부분이 있어서 완전히 같다고 생각하고 쓰면 예상치 못한 문제를 만날 수 있다.
ex. BehaviorSubject와 CurrentValueSubject
ex. subscribeOn - iOS 13이상이라면 RxSwift를 빼고 Combine을 쓸 수는 있다.
하지만 RxSwfit를 Rxcocoa와 함께 쓰는 것 처럼 Combine은 SwiftUI와 함께 쓰는 것이 코드가 깔끔하다. - 덧붙여서 Combine은 SwiftUI와 함께 써야 Apple이 Combine을 만든 의도를 살릴 수 있다.
반응형
'iOS 개발 > RxSwift' 카테고리의 다른 글
[RxSwift] RxSwift와 MVVM 예제 - 로그인 (0) | 2023.04.17 |
---|