์๋ ํ์ธ์ Foma ์ ๋๋ค!
์ ๋ฒ ์๊ฐ์ Reactive X๋
"์ต์ ๋ฒ๋ธ ํ๋ฆ์ ์ฌ์ฉํ๋ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ์ํ API"
๋ผ๊ณ ์๊ฐ๋๋ ธ์ต๋๋ค.
์๊ฐ์ ๋์ ์๋ค์ํผ Observable ์ด๋ผ๋ ๊ฐ๋ ์ ๊ฐ์ฅ ํต์ฌ์ด ๋๋ ๊ฒ์ธ๋ฐ์.
๊ทธ๋์ ์ค๋์ Observable์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
Observer Pattern
๋จผ์ Reactive X๋ ์ต์ ๋ฒ ํจํด์ ์ฌ์ฉํฉ๋๋ค.
์ต์ ๋ฒ ํจํด์ด๋ Observable์ Observer๊ฐ ๊ตฌ๋ ํ๊ณ Observable์ด ์ด๋ค ์ํ๋ฅผ ๋ฐฉ์ถํ์์ ๋
Observer์๊ฒ ์๋ฆผ์ ๋ณด๋ด๋ ๊ฒ์ด์ฃ .
์ด๊ฒ์ ์ ํ๋ฒ๊ฐ ๊ตฌ๋ ์์๊ฒ ์๋ฆผ์ ๋ณด๋ด๋ ๋ฐฉ์์ผ๋ก ์ดํดํ์๋ฉด ํธํ ๊ฑฐ๊ฐ์์.
Observable์ด ์๋ฆผ์ ๋ณด๋ด๋ ๋ฐฉ์์ 3๊ฐ์ง๊ฐ ์กด์ฌํฉ๋๋ค.
OnNext -> ๋ฐ์ดํฐ๊ฐ ๋ฐ์ํ์๋
OnError -> ์๋ฌ๊ฐ ๋ฐ์ํ์๋
OnComplete -> ๋ชจ๋ ์ด๋ฒคํธ๊ฐ ์๋ฃ๋์์๋
Example
์๋์ ๊ฐ์ด 1,2,3์ ๋ฐ์ดํฐ๋ฅผ ๋ฐฉ์ถํ๋ Observable๊ณผ ๊ทธ๊ฒ์ ๊ตฌ๋ ํ๋ Subcriber๋ฅผ ๋ง๋ค์ด์คฌ์ต๋๋ค.
์ด๊ฒ์ ์คํ์์ผ๋ณด๋ฉด ์๋์ ๊ฐ์ด ๋ฐฉ์ถ๋ ๋ฐ์ดํฐ๊ฐ ์ฐจ๋ก๋๋ก ์ถ๋ ฅ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๋ง๋ธ๋ก ํ์ธํ๋ฉด ์๋์ ๊ฐ์ ๊ทธ๋ฆผ์ ๋๋ค. ์์ง Complete๊ฐ ๋์ง ์์๊ธฐ ๋๋ฌธ์ Observable์ด ๊ณ์ ํ๋ฅด๊ณ (?) ์์ฃ .
์ฌ๊ธฐ์ Observable์ onCompleted๋ฅผ ๋ฐฉ์ถ์์ผ ํ๋ฆ์ ์๋ฃ์์ผ์ฃผ๋ฉด
์๋์ ๊ฐ์ด completed๊ฐ ์ถ๋ ฅ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๋ง์ฝ ๋ฐ์ดํฐ๋ฅผ ๋ฐฉ์ถ์ํค๋๋ฐ ์ค๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์?
์๋์ ๊ฐ์ด ๋ฐ์ดํฐ๋ฅผ 1๊ณผ 2๋ฅผ ๋ฐฉ์ถ์ํค๊ณ 3์ ๋ฐฉ์ถํ๊ธฐ ์ ์ ์๋ฌ๋ฅผ ๋ฐฉ์ถ์์ผฐ์ต๋๋ค.
๊ทธ๋ฌ๋ฉด ์๋์ ๊ฐ์ด 1๊ณผ 2๊ฐ ์ถ๋ ฅ๋๊ณ ๊ทธ ๋ค๋ก๋ ์๋ฌ๊ฐ ์ถ๋ ฅ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
์ด๊ฒ์ ์๋ฌ๊ฐ ๋ ๋ค์๋ ๋ฐ์ดํฐ๊ฐ ๋ฐฉ์ถ๋์ง ์์ผ๋ฉฐ ์ฌ์ง์ด Complete๋ ๋ฐฉ์ถ๋์ง ์์ต๋๋ค.
'๐ Language > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[RxSwift] Subject๋? (0) | 2021.01.28 |
---|---|
[RxSwift] Operator๋? (0) | 2021.01.19 |
[RxSwift] Disposable๊ณผ DisposeBag (0) | 2020.12.26 |
[Swift] @discardableResult๋? (0) | 2020.12.24 |
[Swift] toggle์ ์ด์ฉํ์ฌ Bool๊ฐ ์ฝ๊ฒ ๋ฐ๊พธ๊ธฐ (0) | 2020.11.13 |
๋๊ธ