본문 바로가기

RxSwift9

RxSwift에 관하여(Scheduler) Scheduler -Scheduler는 반응형 프로그래밍에서 Observable 연산자의 작업을 수행하는 스레드를 제어할 수 있게 해준다. 여러 스레드에서 동시에 작업을 수행할 수 있으므로 성능을 향상시킬 수 있다. -기본적으로 Observable은 subscribe 메서드가 호출된 스레드에서 작동된다. 따라서 별도의 지시가 없으면 모든 작업은 동일한 스레드에서 이루어진다. -특정 Observable 연산자는 Scheduler를 파라미터로 받아 해당 Scheduler에서 작업을 수행하도록 할 수 있다. 이를 통해 해당 연산자가 동작하는 스레드를 통제할 수 있다. -'subscribeOn' 연산자는 Observable이 작동하기 시작하는 스레드를 지정한다. 연산자 체인의 어느 위치에서 호출되든 상관없이 첫.. 2023. 8. 11.
RxSwift에 관하여(PublishSubject, ReplaySubject, AsyncSubject) PublishSubject PublishSubject는 Observer가 subscribe한 시점 이후에 방출되는 아이템만 전달하는 Subject이다. 구독 시점 이후에만 방출되는 아이템을 전달하기 때문에 PublishSubject의 생성 시점과 구독 시점 사이에 방출된 아이템은 전달되지 않는다. 또한 PublishSubject는 생성 즉시 이벤트를 방출할 준비가 되기 때문에 새로운 Observer가 구독하기 전의 이벤트 요소는 유실될 수 있다. 만약 원본 Observable이나 Subject가 에러 이벤트로 종료된 경우, PublishSubject 는 이후 옵저버에게 해당 에러 이벤트만을 전달한다. PublishSubject의 사용예시 let publishSubject = PublishSubject().. 2023. 8. 10.
RxSwift에 관하여(Subject) Subject의 정의 Subject는 Observable과 Observer의 역할을 동시에 수행할 수 있는 객체이다. 이를 통해 데이터 스트림을 생성하고 관리할 수 있으며, 다른 Observable로부터 데이터를 받아 그대로 전달하거나 새로운 데이터를 생성할 수도 있다. Subject의 역할 1. Observer 역할 Subject는 하나 이상의 Observable에 subscribe 할 수 있으며, Observer로서 데이터를 받을 수 있다. 또한 Subject는 에러를 처리하고, 필요한 경우 처리된 에러를 다음 Observer에 전달할 수 있다. 2. Observable 역할 Subject는 Observable처럼 데이터를 방출할 수 있으며, 이를 통해 하나 이상의 Observer에 데이터를 전달한다.. 2023. 8. 9.
RxSwift에 관하여(Error Handling Operators) Error Handling Operators 말 그대로 에러가 발생할 때, 이를 처리하는 방법을 정의하는 연산자이다. Catch와 Retry 에 대해서 학습해보자. 1. Catch Observable에서 에러가 발생했을 경우, 그 에러를 처리하고 새로운 요소 또는 시퀸스를 반환함으로써 시퀸스가 정상적으로 종료되도록 하거나 종료되지 않도록 할 수 있다. 이를 통해 에러가 발생하더라도 프로그램이 중단되지 않고 적절한 복구 루틴을 수행할 수 있게 해준다. catch의 사용예시 let observableWithError: Observable = Observable.create { observer in observer.onNext(1) observer.onNext(2) observer.onError(MyError.. 2023. 8. 8.
RxSwift에 관하여(Combining Observables) Combining Observables 둘 이상의 Observable 스트림을 하나로 묶어 새로운 Observable 시퀸스를 생성하는 과정을 의미한다. 예를 들어 Transforming Observable 파트에서 학습했던 flatMap 연산자는 변환함수를 적용하여 생성한 새로운 Observable들의 이벤트를 하나의 스트림에 추가하여 단일 Observable 스트림으로 결합하는 작업을 수행했다. 이 때, 결합하는 작업을 수행하는 것이 Combining Observable의 일종이라고 볼 수 있다. 결합 연산자의 종류에는 여러가지가 있지만, merge, combineLatest, zip, switchLatest, startWith, concat 에 대해서 학습해보고자 한다. 1. Merge merge .. 2023. 8. 8.
RxSwift에 관하여(Disposable) Disposable Observable은 비동기 이벤트의 스트림을 생성하고, 전달하는 역할을 하며, 이 때 방출되는 이벤트는 Observer가 받아서 처리한다. 받은 이벤트를 처리한 후에는 더 이상 Observer가 Observable을 관찰하고 있을 필요가 없게 된다. 하지만 Observer를 해제하지 않았을 경우, 필요하지 않은 리소스를 계속 사용하고 있게 된다. 따라서 필요하지 않은 리소스를 적절하게 해제하는 것이 중요하고, 이를 위해 'Disposable' 이 사용된다. public func subscribe(_ on: @escaping (Event) -> Void) -> Disposable { ... } 위 코드와 같이 ObservableType 프로토콜의 extension에 정의된 'subsc.. 2023. 7. 31.