목록rx (5)
study record
map Observable을 통해서 방출되는 모든 요소에 대해서 중간에 계산을 하거나 타입을 변경 시켜주고 싶을 때 간편하게 처리한다. 즉, 데이터 가공이 필요할 때 map을 사용한다. observable() .map{ String($0) } .subscribe(onNext: { grade in print("\\(grade)") }).disposed(by: disposeBag) filter 주로 Collection타입에서 사용되는 filter, 이름 그대로 무언가를 걸러주는 역할을 한다. Observable에서 방출되는 요소를 조건에 맞게 걸러서 구독자에게 전달해주고 싶을 때 사용한다. phoneNumberObservable() .filter { phoneNumber in return phoneNumbe..
Scheduler : 프로세스가 있는 곳의 Context (= thread, dispatchQueue) 특정 코드가 실행되는 Context를 추상화한 것이다. Cocoa에서는 Main Queue를 사용하지만 RxSwift에서는 MainScheduler를 사용한다. 연산자 subscribeOn : Observable의 프로세싱이 어디서 일어나게 할 것인지 결정하는 연산자 observeOn : Observer가 Observable을 어디서 observe할 것인지 일반적으로 subscribeOn(:)은 Background Thread에서, observeOn(:)은 Main Thread에서 사용 observeOn vs subscribeOn 다른 스케줄러에서 작업하고자 한다면 observeOn을 사용한다. seq..
Observable 여러 이벤트들을 방출(=”emit”)할 수 있는 대상 emit : 이벤트를 계속해서 비동기적으로 생성하는 기능 sequence란? Observable = Observable sequence = sequence Observable 이벤트들은 sequence라고 할 수 있다. 이벤트의 종류 next 구성 요소를 계속해서 방출할 수 있는 기능 (= observable 구독자에게 데이터 전달) completed 성공적으로 next이벤트가 완료되었을 때 발생하며, 이벤트를 종료시킨다. (= observable 구독자에게 완료되었음을 알림) error 이벤트에 오류가 있음을 알고 중간에 스트림을 종료시킬 수 있는 기능 (observable 구독자에게 오류를 알린다.) API.download(fi..
Reactive Programming 등장 배경 빅데이터: 빅데이터는 보통 PB(페타바이트) 단위로 구성되고, 거기에 매일 증가해버린다. 다양한 환경: 비슷비슷한 디바이스가 아니라 작은 모바일 디바이스부터 수천 개의 멀티 코어 프로세서로 실행되는 클라우드 클러스터까지 너무도 다양한 환경에 애플리케이션이 배포됨. 사용 패턴: 사용자는 1년 내내 항상 서비스를 사용할 수 있고, ms 단위의 응답시간을 기대한다. 리액티브 프로그래밍에서는 다양한 소스에서 들어오는 데이터의 흐름(스트림)을 비동기적으로 합쳐서 이런 문제를 해결한다. Reactive Programming이란? 리액티브 프로그래밍은 비동기적 데이터의 흐름과 변화의 전달에 관한 프로그래밍 패러다임이다. 리액티브 프로그램은 주변의 환경과 끊임없이 상호작..