티스토리 뷰

728x90
반응형

내용

  • 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 에 예약됩니다.
728x90
반응형

'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
댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
«   2024/11   »
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