RxSwift 개념
RxSwift란?
ReactiveX는 옵저버블 스트림으로 비동기 프로그래밍을 돕는 API
-> ReactiveX는 비동기 프로그래밍과 옵저버 패턴을 사용하기 쉽도록 돕는 라이브러리입니다. 데이터의 변화에 반응하는 프로그래밍을 하게되어 반응형 프로그래밍이라고도 합니다. ReactiveX를 Swift에 적용한 것이 RxSwift입니다.
RxSwift vs Combine
Combine은 iOS 13 이상부터 지원하는 라이브러리로, 비교적 출시된지 얼마안된 기술입니다. 따라서 아직 발전 중에 있는 기술이며, 관련 자료가 RxSwift보다 적은편입니다.
RxSwift는 ReactiveX의 프로그래밍 철학을 따르기 대문에, 같은 철학을 따르는 RxJava, RxPython, RxJS 등 다른 언어를 사용하는 개발자들과 원활한 대화를 할 수 있습니다.
또 현실적으로 현재 이미 많은 기업들의 코드는 RxSwift로 작성된 상태로 동작을 하고 있습니다. 새로운 피쳐 개발이나 신생 스타트업이 아니라면 RxSwift 사용 비율이 Combine보다 높기 때문에 이러한 여러 관점에서 RxSwift를 먼저 공부하는 것이 괜찮은 선택이 됩니다.
또한, RxSwift를 이해한다면 Combine의 이해는 매우 쉽기 때문에 RxSwift를 먼저 공부하는걸 추천합니다.
Observable 개념
Observable은 관측 가능한 대상이며, 이벤트와 데이터를 방출하는 클래스입니다.
Observable에서 이벤트를 방출하면, 이를 구독하고 있던 구독자(관찰자)들이 그에 반응하며 어떠한 로직을 수행합니다.
Observable을 구독하는 것을 subscribe이라고 하며, 이를 구독하는 관찰자를 Observer라고 합니다.
예를들어, Observable을 구독하고 있는 구독자가 "나는 Observable에서 정수 값이 방출되어 나오면, 그 값에 2를 곱해서 사용할래" 라는 세팅을 해두면, Observable에서 3이라는 값이 나왔을 때 Observer는 6이라는 값을 사용하게 되는 것입니다.
'Swift 언어 > RxSwift' 카테고리의 다른 글
RxSwift Subject의 Observable 역할 (1) | 2024.09.03 |
---|---|
RxSwift Observable 생성 (empty, never, range, interval, timer, defer) (0) | 2024.08.26 |
RxSwift Observable생성 (just, of, from, create) (0) | 2024.08.25 |
RxSwift Observable 흐름 (0) | 2024.08.25 |