티스토리 뷰
내용
- Rx 의 3요소(Observables, Operators, Schedulers) 에 대해서 알아보자.
RxSwift: Reactive Programming with Swift, Chapter 1: Hello, RxSwift!
위의 글을 번역 및 요약한 글입니다.
Rx 코드의 세 가지 building blocks 은 Observables, Operators, Schedulers 입니다.
Shedulers
Schedulers 는 Rx 에서 dispatch queues 또는 operation queues 에 해당하며 사용이 훨씬 간편합니다. shedulers 는 특정 작업의 execution context 를 정의할 수 있습니다.
RxSwift 는 use cases 의 99% 를 다루는 사전 정의된 여러 스케줄러와 함께 제공되며 자신만의 스케줄러를 만들 필요가 없기를 바랍니다.
예를 들어, GCD 를 사용하여 주어진 큐에서 코드를 직렬(serial)로 실행하는 SerialDispatchQueueScheduler
에서 next
이벤트를 관찰하도록 지정할 수 있습니다.
ConcurrentDispatchQueueScheduler
는 코드를 동시에(concurrently)하게 실행하고, OperationQueueScheduler
는 주어진 OperationQueue 에서 구독을 예약할 수 있도록 합니다.
RxSwift 덕분에 다른 스케줄러에서 동일한 구독의 다른 작업을 예약하여 use case 에 맞는 최상의 성능을 얻을 수 있습니다.
RxSwift 는 subscriptions 와 schedulers 사이에서 dispatcher 역할을 하여 작업 조각을 올바른 context 로 보내고 서로의 ouput 과 원할하게 작동하도록 합니다.
- 파란색 network subscription 은 사용자 지정
OperationQueue
기반 스케줄러에서 실행되는 코드 1로 시작합니다. - 이 블록(fetch JSON)의 데이터 output 은 concurrent background GCD queue 에 있는 다른 스케줄러에서 실행되는 next block 2 의 input 으로 사용됩니다.
- 마지막으로 파란색 코드 3 의 마지막 부분은 새 데이터로 UI 를 업데이트하기 위해 Main thread scheduler 에 예약됩니다.
'iOS > RxSwift' 카테고리의 다른 글
RxSwift) 5.Observables (0) | 2022.07.12 |
---|---|
RxSwift) 3. App architecture & RxCocoa (0) | 2022.07.01 |
RxSwift) 2-2. Rx 3요소 - Operators (0) | 2022.06.30 |
RxSwift) 2-1. Rx 3요소 - Observables (0) | 2022.06.30 |
RxSwift) why (0) | 2022.06.30 |
- async/await
- Firebase
- Notification
- Algorithm
- Swift
- Protocol
- UserDefaults
- WidgetKit
- YPImagePicker
- CloneCoding
- rxswift
- WWDC
- IOS
- WWDC22
- Widget
- SwiftUI
- github
- OpenSourceLibrary
- RxCocoa
- configurable widget
- projectsetting
- watchOS
- 서버통신
- Objective-C
- MVVM
- APNS
- MOYA
- 2022 KAKAO TECH INTERNSHIP
- urlsession
- containerBackground
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Total
- Today
- Yesterday