Subject란
실제 앱 구동 시 (=런타임) Observable에 값을 추가하여 emit이 발생하게끔 해주는 대리인
Observable에 값을 추가하는 대상은 Observer라고 부르며, Observable과 Observer 기능을 둘 다 하는 것이 Subject
Subject의 종류
PublishSubject
- empty 상태로 시작. 새로운 이벤트만 subscriber에게 emit
- 구독된 순간 새로운 이벤트 수신을 알리고 싶을 때 사용
BehaviorSubject
- 하나의 초기값을 갖고 시작, 최신 값만 새로운 subscriber에게 emit
- 뷰를 가장 최신의 데이터로 미리 채우기에 용이(유저 프로필 화면을 BehaviorSubject에 바인딩)
ReplaySubject
- 버퍼 사이즈를 지정하며, 버퍼 사이즈만큼 새로운 subscriber에게 emit
PublishRelay, BehaviorRelay