π TL; DR
π Cold Publisher / Hot Publisher
π Cold Publisher
- ꡬλ
μκ° κ΅¬λ
νλ μμ μ λ°μ΄ν° λ°©μΆμ μμνλ Publisher
- ꡬλ
μκ° κ΅¬λ
νλ μμ μ λ°μ΄ν° λ°νμ μμνκΈ° λλ¬Έμ, λͺ¨λ ꡬλ
μλ λμΌν λ°μ΄ν°λ₯Ό μμ λ°μ μ μμ
- μμ μ΄ν΄λ³Έ Single / Flowable / Observable λ±μ΄ μ΄μ ν΄λΉ λ¨
π Hot Publisher
- ꡬλ
μκ° κ΅¬λ
νμ§ μμλ, λ°μ΄ν°λ₯Ό λ°©μΆνλ Publisher
- ꡬλ
μκ° κ΅¬λ
νμ§ μμλ λ°μ΄ν°λ₯Ό λ°©μΆνκΈ° λλ¬Έμ, ꡬλ
μκ° κ΅¬λ
νκΈ° μ΄μ μ λ°νλ λ°μ΄ν°λ ꡬλ
μκ° λ°μ΄ν°λ₯Ό λ°μ μ μμ
- Processor / Subject λ±μ΄ μ΄μ ν΄λΉ λ¨
- μ€λ³΅λ μ΄λ²€νΈ λ°νμ λ§κΈ° μν΄ μ¬μ© ν μ μμ ( MultiCasting / UniCasting, μΆν ν¬μ€ν
μμ Connectable Observableκ³Ό ν¨κ» λ€λ£° μμ )
π Processor / Subject
π Processor / Subject
- Reactive Streamμμ, Publihser / Subscriberλ₯Ό λμμ ꡬννκ³ μλ interface
- μ¦ κ΄μ°° λμμΌλ‘λ, κ΄μ°°μλ‘μ¨λ νμ©ν μ μλλ‘ νμ©
- μμ μ΄ν΄λ³Έ Observable / Flowable / Single λ±κ³Ό λ€λ₯΄κ² Hot Publisherμ νΉμ±μ μ§λ
- Flowable / Observableμ μ°¨μ΄μ κ³Ό λ§μ°¬κ°μ§λ‘, Processorλ λ°°μμ νμ©ν μ μμ§λ§, Subjectλ λ°°μμ νμ©νμ§ λͺ»ν¨
- RxJava2μλ Subject / Processorλ₯Ό PublishSubject ( Processor ) / BehaviorSubject ( Processor ) / AsyncSubject ( Processor ) / ReplaySubject ( Processor ) λ±μΌλ‘ ꡬν ν΄ λ
π PublishSubject
- ꡬλ
μμ μ΄μ μ λ°νλ λ°μ΄ν°λ 무μνκ³ , ꡬλ
μμ μ΄νμ λ°νλ λ°μ΄ν°λ₯Ό λ°ννλ Subject