์ค๋์ ๋ฐฐ์ #122
2022.01.21 ์ค๋์ ๋ฐฐ์
์ค๋ ํ ์ผ.
- ๋ฉด์ ์ค๋น - Rx ๋ฏ์ด๋ณด๊ธฐ
- ์์์ค์ ํต์ฌ์ ์ธ ๋ถ๋ถ๋ง์ ๊ณจ๋ผ์ ๊ธฐ์กด ๊ณต์ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ๋ฐ๋ผ ๋ง๋ค์ด๋ดค๋ค. ์ด์ ์์ผ subscribe๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง, create๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง ์ดํดํ๊ฒ ๋๋ค.
- ๋ ํฌ๋ฅผ ๋ฐ๋ก ๋ง๋ค์ด๋์๋ค!
- ๋ฉ์ดํธ๋ฌ๋์ ๋น๋ฒ์ค์ 3์๊ฐ์ ๊ฑธ์น ํ๋ง์คํฌ๋ผ์ผ๋ก ํ๋ฃจ๋ฅผ ๋ง๋ฌด๋ฆฌํ๋ค.
์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ.
- ์ฌ์ค ์ฐ๋ฆฌ๊ฐ subscribe๋ฅผ ํ๊ณ ๋ฐ๋ disposable์ ๊ตฌ์ฒดํ์ ์ SinkDisposer์๋ค. ์ด ์์ ์ด๋ฒคํธ๋ฅผ ์ ๋ฌํ๋ sink์ ์ด๋ฒคํธ๋ฅผ ๋ฐ์ ์ฒ๋ฆฌํ๋ subscription์ด disposable๋ก ๋ค์ด๊ฐ ์๋ค.
- dispose๋ฅผ ํ๋ฉด sink์ subscription์ ๋ํด ๋ชจ๋ dispose๋ฅผ ํธ์ถํ๋ค.
- ์ฐ๋ฆฌ๊ฐ Observable์ ๋ํด subscribe๋ฅผ ๋ถ๋ฅด๋ฉด ํธ์ถ๋๋ ๋ฉ์๋๋ Producer ํด๋์ค์ ์๋ subscribe์ด๊ณ , ์ด ์์์ ํธ์ถํ๋ run ๋ฉ์๋๋ Observable ๊ตฌ์ฒดํ์ ์ ๊ตฌํ๋์ด์๋ค.
- ObservableType์ ๊ตฌํ๋ subscribe๋ ๋ฐํํ disposable์ ๋ง๋ค๊ธฐ ์ํด disposable.create๋ฅผ ํ ๋ self.asObservable().subscribe(observer)๋ฅผ ๋ถ๋ฅธ๋ค. ์ด๋ observer๋ ์ธ์๋ก ์ ๋ฌ๋ฐ์ ํด๋ก์ ๋ค์ ํ๋๋ก ๋ฌถ์ด์ ๊ฐ์ง๊ณ ์๋ ์ต์ ๋ฒ์ด๊ณ , ์ด ์ต์ ๋ฒ๊ฐ AnonymousObservable์ ๊ตฌ๋ ํ๊ฒ ํ๋ ๊ฒ์ด๋ค.
- ์ด๋ฌ๋ฉด์ ๋ด๋ถ์ ์ผ๋ก subscribe๊ฐ ํ ๋ฒ ๋ ๋ถ๋ฆฌ๋ฉด ๋ค์ producer์ subscribe๊ฐ ๋ถ๋ฆฌ๊ณ , ์ด๋ ์ ๋ฌ๋๋ Observer๋ ์ด๋ฒคํธ ์ฒ๋ฆฌ ํธ๋ค๋ฌ๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ต์ ๋ฒ, subsribeHandler๋ฅผ ๊ฐ์ง๊ณ ์๋ Observable์ create๋ฅผ ํ ๋ ๋ง๋ Observable์ด ๋์ด์ create์ ์ ์ํ๋ ํด๋ก์ ๊ฐ ์คํ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ธ์๋ก ์ต์ ๋ฒ๊ฐ ๋ค์ด๊ฐ๋๊น Sink๋ฅผ ํตํด์ create์์ ์คํํ๋ ์ด๋ฒคํธ๋ค์ด on์ ํตํด ์ต์ ๋ฒ์๊ฒ ์ ๋ฌ๋๋ค. ์ ๋ ์นด!
- ์ฌ์ค ObservableType ํ๋กํ ์ฝ์๋ on ๋ฉ์๋๋ฐ์ ์๋๋ฐ, onNext, onError, onCompleted ์ด๋ฐ ์ ๋ค์ extension์ ๊ตฌํ๋ ์๊ฐ API์ด๋ค. ๋ด๋ถ์ ์ผ๋ก๋ on(.next(value)) ์ด๋ฐ์์ผ๋ก ๋์ด์๋ค.
- AnonymousObserver ๊ฐ์ ๊ฒฝ์ฐ์๋ on ๋ฉ์๋๋ฅผ ๊ตฌํํ์ง ์๊ณ ์์ด์, ์์ ์ ์์ ํ์ ์ธ ObserverBase์ on์ ์ฌ์ฉํ๋ค. ๊ทผ๋ฐ ๋ ObserverBase์ on์์ ์ฐ์์ ์ผ๋ก ํธ์ถํ๋ onCore ๋ฉ์๋๋ AnonymousObserver์์ ๊ตฌํํ๊ณ ์๋ค.
- disposable์ ์ฌ์ค disposable <- Cancelable <- SinkDisposer ๋ก ์์๋๊ณ ์๋ค. ๊ทธ๋์ ์ต์ข ์ ์ผ๋ก ๋ฐ๋ ํ์ ์ด Disposable์ธ๊ฒ.
- Cancelable์ isDisposed ํ๋กํผํฐ๋ฅผ ์ ์ํ๋ ํ๋กํ ์ฝ์ด๋ค.
- Disposable์ dispose ํ๋กํผํฐ๋ฅผ ์ ์ํ๋ ํ๋กํ ์ฝ์ด๋ค.
- Disposables๋ ๊ทธ๋ฅ ๊ตฌ์กฐ์ฒด๋ค. ๋ด๋ถ์ ๊ตฌํ์ ์๊ณ Disposable์ Extension์ผ๋ก ๋นผ์ ๋ด๋ถ์ create ํ์ ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ก๋ฉ์ผ๋ก ์ฌ๋ฌ๊ฐ ๋ง๋ ๋ค. ์ด๋ ๊ฒ ํ๋ ์ด์ ๋ create๋ก ๋ง๋๋ Disposable์ ๊ตฌ์ฒดํ์ ์ ํ์ผ ์์ Disposable.create๋ฅผ ์ ์ํ ์ ์๊ฒ๋ํ๊ธฐ ์ํจ์ธ ๊ฒ ๊ฐ๋ค. ํ์คํ ์ด๋ ๊ฒ ํ๋ฉด ์ฝ๊ธฐ์ ์ข์ ํ์ผ์ด ๋๋ค.
์ค๋ ๋๋ ๊ฒ.
- ๋ถ์บ ์์ ์ ๋ง ์ข์ ์ฌ๋๋ค์ ๋ง๋ ๊ฒ ๊ฐ์์ ๊ธฐ์๋ค! ์์์ฝ์ฝํ ์ด์ผ๊ธฐ๋ฅผ ํตํด์ ์ง์ง ๋ง์ด ํ๋ง๋ฐ๋๋ค.
- ์์์ค๋ฅผ ์ฒ์ ๋ฏ์ด๋ณผ ๋๋ ์ง์ง ๋ง๋งํ๋๋ฐ, ์์ ๋จ์๋ก ์์ฃผ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ๋ค๋ง ๋ถ์ํด๋ณด๋ ์์ฒญ๋๊ฒ ์ด๋ ต์ง๋ ์์๋ค. ์จ์ข ์ผ์ ๋ค ์ฐ๊ธด ํ์ง๋ง.. ์ญ์ ์ธ์์ ์ง๋ฆฌ๋ ๋ถํ ์ ๋ณต์ด๋ผ๋ ๊ฒ์ ๋ค์ํ๋ฒ ๊นจ๋ซ๋๋ค.
- ๋ด์ผ ๋ด ์ฐ๊ตฌํํธ๋๊ฐ ๊ฒฐํผ์ ํ๋ค. ๋ถ๋ฝ๊ธฐ๋ ํ๊ณ ์ผ๋ ์ ์ ๊ฐ์ด ์ฐ๊ตฌ์ค์์ ์๊ณ ๋ ๋ค๋ ์น๊ตฌ๊ฐ ์ง๊ธ์ ๋๋ ์์ ๋ค๋ฅธ ์ํฉ์ ์์ผ๋๊น ์ ๊ธฐํ๊ธฐ๋ ํ๋ค. ๋๋ ์ ๋ฌ ๋ ์ด ์ค๊ฒ ์ง?
๋ด์ผ์ ๊ณํ.
- ๋ฉด์ ์ค๋น - ์ด์ CS์ iOS์ชฝ์ ๊ณ์ ๋ด์ผ๊ฒ ๋ค.
์ค๋์ ๊ฐ์ฌ.
- ์ผ์ฃผ์ผ์ ์ข์ ์ฌ๋๋ค๊ณผ ์ฆ๊ฒ๊ฒ ๋ง๋ฌด๋ฆฌํ๊ฒ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
'๐ญ ๋ผ-์ดํ > ๐ ํฐ-์์ด-์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ค๋์ ๋ฐฐ์ #124 (0) | 2022.02.04 |
---|---|
์ค๋์ ๋ฐฐ์ #123 (0) | 2022.02.02 |
์ค๋์ ๋ฐฐ์ #121 (0) | 2022.01.21 |
์ค๋์ ๋ฐฐ์ #120 (0) | 2022.01.19 |
์ค๋์ ๋ฐฐ์ #119 (4) | 2022.01.19 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote