본문 바로가기

전체 글133

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.
RxSwift에 관하여(Filtering Observables) Filtering Observable -필터링 연산자는 Observable에서 방출하는 요소를 조건에 따라 필터링하는데 사용되는 연산자들을 말한다. 'Filter', 'Skip', 'Take', 'Distinct', 'Debounce' 등이 있으며, 차례대로 어떻게 수행하는지 학습해보자. 1. Filter 연산자 이름 그대로 필터링 기능을 수행한다. 원본 Observable이 방출하는 요소 중 특정 조건을 충족하는 요소만을 선택해서 새로운 Observable로 출력한다. filter의 사용 예시 let numbers = Observable.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) let filterObservable = numbers.filter { $0 % 2 == 0 } filte.. 2023. 7. 27.
RxSwift에 관하여(Transforming Observables) 지난 시간에는 Observable의 Creating 연산자에 대해 학습하며, 특정한 특성을 가지고 있는 Observable의 생성에 관해 알아보았다. 이번에는 Observable의 Tansforming 연산자에 대해 학습해보자. Transforming 연산자 Observable이 방출하는 항목을 새로운 형태로 변환하거나, 새로운 Observable로 변환하는 등의 작업을 할 수 있도록 하는 연산자이다. 1. Map map 연산자는 Observable이 방출하는 각 항목에 함수를 적용하여 그 결과를 새로운 Observable로 반환한다. map의 사용 예시 let observable = Observable.from([1, 2, 3, 4, 5]) let newObservable = observable.map.. 2023. 7. 23.
RxSwift에 관하여(Observable과 Creating Observables) 등장 배경 RxSwift는 비동기 프로그래밍과 데이터의 흐름을 관리하기 위해 설계되었다. 앱에서 데이터와 상호작용은 대부분 비동기적으로 발생하며, 이는 앱의 상태를 추적하고 관리하는 것을 어렵게 만든다. 예를 들어, 서버에서 데이터를 가져와야 하는 경우, 데이터를 받아서 UI를 리프레쉬 해야 한다. 이 과정에서 동시에 여러 작업이 비동기적으로 수행되는 경우가 많다. 이 때문에 작업 간의 의존성이나 상태 등을 관리하는 것이 까다롭다. 이러한 복잡성을 관리하는 전통적인 방법 중 하나는 콜백 함수를 사용하는 것인데, 콜백 함수는 여러 비동기 작업이 서로 연결되어 있을 때, 가독성이나 에러처리의 어려움 등 여러 문제가 발생할 수 있다. 이를 해결하기 위해, RxSwift와 같은 반응형 프로그래밍 라이브러리가 등.. 2023. 7. 14.