오늘한 일
- 곰튀김 Rx 듣고 정리하기
- 곰튀김 Rx 실습
Rx 쓰는 이유: 비동기 작업을 보다 쉽게 하기 위해
Observable: 관찰 가능한 객체. 즉 이벤트를 발생시키면 해당 객체를 관찰하고 있던 관찰자(구독자) 객체들이 stream을 통해 데이터를 전달 받음
Just: stream에 값을 한번에 방출하고 complete
From: stream에 array의 element를 하나씩 방출하고 complete
생명주기
Create
Subscribe
onNext / onError
onCompleted
disposed
Subject
- PublishSubject
- 데이터 발생 시 stream에 데이터를 넘김
- 여러 객체가 subscribe 가능
- BehaviorSubject
- PublishSubject와 동일한 동작을 하지만, 기본값이 있음.
- 구독을 하면 가장 최근 데이터를 넘겨줌
- AsyncSubject
- 데이터가 여러번 발생해도 stream에 데이터를 넘기지 않고, complete 되는 시점에 가장 마지막에 있던 데이터를 넘김
- ReplaySubject
- PublishSubject와 동일한 동작을 하지만, 나중에 subscribe한 객체에게도 기존에 발행되었던 데이터를 모두 넘겨줌
Observable은 생성되는 시점 부터 어떤 데이터를 내보낼지 정해져 있음 -> 외부에서 데이터를 받을 수 없음
반면 Subject는 외부에서 데이터를 주입받고, 방출할 수 있음.
scan 오퍼레이터: 설정한 초기값에 stream을 타고 넘어온 데이터를 가지고 중간 값을 만들음.
rxCocoa: rxSwift의 요소를 UIkit의 view들에게 extension을 통해 접목시켜줌
- bind는 순환참조를 방지한다.