-
RxSwift - 1.Reactive Programming, RxSwift 개념RxSwift 2023. 2. 27. 22:08
1. Reactive Programming
- 비동기 데이터 스트림을 이용하여 프로그래밍 하는 것 입니다.
- 비동기 처리를 스트림을 만들고 해당 스트림에 데이터를 흘려보내서 데이터를 처리하는 방식입니다.
1.1 Stream
- 스트림은 만들고, 조합하고, 필터링할 수 있습니다.
- 스트림은 다른 스트림의 input이 될 수 있습니다.
- 복수의 스트림들도 다른 스트림의 input이 될 수 있습니다.
2. Reactive Extension(RxSwift, RxCocoa)
2.1 RxSwift란?
- RxSwift는 관찰이 가능한 형태와 함수형태의 연사자를 이용해서 비동기 이벤트 처리를 위한 코드를 제공해주는 Library 입니다.
2.2 RxSwift의 3요소
- Observable
Observable은 observable, observable sequence, sequence라고도 불립니다. Observable은 이벤트를 전달하며, Observer는 이를 관찰하고 있다가 전달되는 이벤트를 처리합니다. Observable을 관찰하는 것을 Subscribe(구독)한다고 표현합니다. 그래서 Observer를 Subscriber라고 표현하기도 합니다.- Next Event: 최신 데이터 값을 전달하는 이벤트입니다. Observer는 해당 이벤트를 통해 값을 수신하며, Complete Event가 발생하기 전까지 계속 발생시킬 수 있습니다.
- Complete Event: Observable을 성공적으로 종료시키는 이벤트입니다.
- Error Event: Observable이 오류로 인해 종료되는 이벤트입니다.
- Operator
Operator는 Observable을 생성하거나, 필터링 하거나, 여러 Observable을 합치는 메소드들 입니다. 이러한 Operator는 Observable을 리턴합니다.- 특징
- 대부분의 연산자는 Observable 상에서 동작하며 새로운 Observable을 리턴합니다.
- 연산자는 체이닝을 이용할 수 있지만, 순서에 주의해서 사용해야 합니다.
- 특징
- Scheduler
기존에 사용하던 DispatchQueue와 동일한 기능을 수행합니다. 쉽게 사용할 수 있습니다.
2.3 RxCocoa란?
- UIKit및 Cocoa개발을 지원하는 클래스를 보유하고 있는 라이브러리입니다. 다양한 UI요소에 Reactive Extenstions기능을 추가하여 제공합니다.
피드백 환영합니다!!
참조
RxSwift Reactive Programming with Swift thirdnbsped by raywenderlich team's book
https://ios-development.tistory.com/95
https://gist.github.com/staltz/868e7e9bc2a7b8c1f754
https://gist.github.com/casamia918/93b8db69beb9ee06b92a96b2a234d48e
https://velog.io/@phs880623/RxSwift-Operator%EB%9E%80
https://velog.io/@phs880623/RxSwift-Observable%EC%9D%B4%EB%9E%80
'RxSwift' 카테고리의 다른 글
RxSwift - 4.Hot Observable, Cold Observable (0) 2023.03.03 RxSwift - 3.Subjects (0) 2023.03.02 RxSwift - 2.Observable (0) 2023.02.28 Functional Programming (0) 2023.02.24