์ค๋์ ๋ฐฐ์ #112
2022.01.08 ์ค๋์ ๋ฐฐ์
์ค๋ ํ ์ผ.
- Rx ์ ๋ฆฌํ๊ธฐ
์ค๋ ์๋ก ๋ฐ๊ฒฌํ ๊ฒ.
- ์ต์ ๋ฒ๋ธ์ ์์ ํ๋กํ ์ฝ์ ObservableType์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ฐ ์ฑํํ๋ ํ๋กํ ์ฝ์ ObservableConvertibleType.
- ObserverbaleConvertibleType์ asObservable์ ๋ํ ๋ช ์ธ๋ฅผ ๊ฐ์ง๊ณ ์๊ณ ์ด๊ฑธ ObservableType์์ ๊ตฌํํ๊ณ ์์.
- ๊ทผ๋ฐ ์ฌ์ค์ Observable์ createํจ์๋ฅผ ๋ถ๋ฅด๋ฉด์ ์๊ธฐ๋ฅผ subscribeํ๋ ๋ก์ง์ ๋ฃ์ด์ค๋ค.
- ์ต์ ๋ฒ๋ธ์ ์์ํ๋ ๋ชจ๋ ํ์ ๋ค์ ๊ฐ์ ์์ ์ subscribe๋ฅผ ๊ตฌํํ๊ณ ์๋ค.
- just, single ์ฒ๋ผ ์๊ฐ๋ฅผ ์์ฐ๊ณ create๋ก ๋ง๋๋ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง. ์ด๋ด๋๋ AnonymousObservable์ด ๋ง๋ค์ด์ง๋ค.
- subscribe๊ฐ ํธ์ถ๋๋ฉด ์ฌ์ค์ Observable์ด ์์ํ๊ณ ์๋ Producer ํด๋์ค์ subscribe๋ฅผ ๋ถ๋ฅด๋ ๊ฒ. ์ฌ๊ธฐ์ ์ ๋ฌ๋๋ ์ธ์๋ Observer ํ์ ์ด์ด์ผ ํ๋๋ฐ, ์ฐ๋ฆฌ๋ ์ผ๋ฐ์ ์ผ๋ก onNext:{}, onError:{} ์ด๋ฐ์์ผ๋ก ํด๋ก์ ๋ฅผ ๋๊ฒจ์ฃผ๊ณ ์๋ค. ์ ์ด๊ฒ ๊ฐ๋ฅํ๋๋ฉด ObservableType+Extension์ ๊ฐ ์ด๋ฒคํธ์ ๋ํ ์ฒ๋ฆฌ ํด๋ก์ ๋ง ๋๊ฒจ์ฃผ๋ฉด ๋ด๋ถ์์ AnonymousObserver๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ด๋ค.
- subscribe๋ Producer์ ๊ตฌํ๋์ด์๊ธฐ ๋๋ฌธ์ Disposable์ ๋ฐํํ๋ ๋๋ถ๋ถ์ ์คํผ๋ ์ดํฐ๋ค์ Producer๋ฅผ ์์ํ๊ณ ์๋ค.
- Observable์ ๋น๋๊ธฐ์ ์ผ๋ก ์ด๋ฒคํธ๋ฅผ ์ฐ์์ ์ผ๋ก ๋ฐฉ์ถํ ์ ์๋ ๊ฐ์ฒด๋ฅผ ๋งํ๋ค.
- ์ต์ ๋ฒ๋ธ์ด ์์ฑํ ์ ์๋ ์ด๋ฒคํธ๋ ์ธ ๊ฐ์ง next, complete, error์ด๋ค. complete๊ณผ error๊ฐ ๋ฐ์ํ๋ฉด ์ต์ ๋ฒ๋ธ ์ํ์ค๊ฐ ์ข ๋ฃ๋๊ณ ๋ ์ด์ ์ด๋ฒคํธ๋ฅผ ์์ฑํ์ง ์๋๋ค.
- drive, bind, subscribe๋ค ๊ตฌ๋ ์ ์ญํ ์ ํ๋ ์ ๋ค์ธ๋ฐ ์ฝ๋๋ฅผ ๊น๋ณด๋ฉด bind๋ onNext์ ๋ํ ์ฒ๋ฆฌ๋ง ํ์ฉํ๊ณ ์๊ณ ๋๋จธ์ง ์ด๋ฒคํธ๋ ๋ฐํ์์๋ฌ๊ฐ ๋๋ค. drive๋ bind๋ ๋๊ฐ์๋ฐ ๋ฉ์ธ ์ค๋ ๋์์ ํด๋ก์ ๋ฅผ ์คํํ๋๋ก ๋ณด์ฅํ๊ณ subscribe๋ onNext, onError, onComplete์ ๋ํ ํด๋ก์ ๋ฅผ ๋ค ๋ฑ๋กํ ์ ์๋ค.
- ํซ ์ต์ ๋ฒ๋ธ์ ๊ตฌ๋ ์๊ฐ ๋ฐ์ํ์ง ์์๋ ๋ฐ์ดํฐ๊ฐ ๋ฐ์ํ๋ฉด ๊ณง๋ฐ๋ก ๋ฐฉ์ถํ๊ณ , ์ฝ๋ ์ต์ ๋ฒ๋ธ์ subscribe๊ฐ ์์๋์ด์ผ ๋ฐฉ์ถ์ด ์์๋๋ค.
- ์ต์ ๋ฒ๋ธ๊ณผ ์๋ธ์ ํธ๋ ์๋ธ์ ํธ๊ฐ ์ต์ ๋ฒ์ ์ญํ ๋ ๊ฒธํ ์ ์๋ค๋ ์ ์ ์๋ค. ์๋ธ์ ํธ์ next๋ฅผ ํตํด ์๋ก์ด ๊ฐ์ ์ํ์ค์ ๊ณ์ ์ถ๊ฐํด์ค ์ ์๋ค. ์๋ธ์ ํธ๋ ํซ ์ต์ ๋ฒ๋ธ๋ก ๋ณผ ์ ์๋๋ฐ ๊ฐ์ ๊ณ์ ์๋ธ์ ํธ์ ์ถ๊ฐํด์ฃผ๋ฉด ๊ตฌ๋ ์๋ ์๋ธ์ ํธ์ ์ข ๋ฅ์ ๋ฐ๋ผ์ ์ด์ ๊ฐ๋ค์ ๋ชจ๋ ๋ฐ๊ฑฐ๋(Replay), ๊ฐ์ฅ ์ต๊ทผ์ ๋ฐฉ์ถ๋ ๊ฐ๋ง ๋ฐ๊ฑฐ๋(Behavior), ์ต๊ทผ๊น์ง ๋ฐฉ์ถ๋ ๊ฐ์ ๋ฌด์ํ๊ณ ์์ผ๋ก ๋ฐฉ์ถ๋๋ ๊ฐ๋ง ๋ฐ๋๋ก(Behavior) ์ค์ ํ ์ ์๋ค.
- ์ค์ ๋ก ์ฐ๋ฆฌ๊ฐ observer ํ์ ์ ์ง์ ๋ค๋ฃฐ ์ผ์ด ์๋ ์ด์ ๋ subscribe๋ฉ์๋์์ ๋ด๋ถ์ ์ผ๋ก Observer๋ฅผ ์์ฑํ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ค๋ ๋๋ ๊ฒ.
- Rx๋ฅผ ๋๋ฌด ์๊ฐ์์ด ์ฐ๊ณ ์์๋ค.
- single ์ฒ๋ผ ๋คํธ์ํน์ ์ ํฉํ ์คํผ๋ ์ดํฐ๋ ์์๋๋ฐ ํ์ ํ ๋ ๋๋ฌด ๋ฌด์ง์ฑ์ผ๋ก ์ต์ ๋ฒ๋ธ์ ๋ง๋ ๊ฒ ๊ฐ๋ค. ์ด๊ฒ๋ ๋์ค์ ์์ ํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค.
- ๋์คํฌ ์บ์๋ฅผ ๋น์์ฃผ๋ ๋ถ๋ถ์ ๊ตฌํํ๊ณ ์๋๋ฐ ๋ฌธ์ ๊ฐ ๋ง๋ค. ์ผ๋จ ์๋์ผ๋ก ๋์คํฌ๋ฅผ ๋น์์ฃผ๋ ค๋ฉด ์๋ง๋ LRU๋ฅผ ์ฌ์ฉํ ํ ๋๊น ๋์คํฌ ์บ์ ํํธ์๊ฐ์ ๊ธฐ๋ก์ ํด๋ฌ์ผํ๋ค. ๊ทผ๋ฐ ์ง๊ธ์ FIleManager์์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์ฌ์ค์ ๋ถ๊ฐ๋ฅํ๋ค. ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ค๋ฉด ํ์ผ์ด๋ฆ์ ์๊ฐ์ ๋ถ์ฌ์ ์ ๊ท์์ผ๋ก ํ์ผ์ ๋ฎ์ด์ฐ๊ณ ์ฝ๊ณ , ํจํด๋งค์นญ์ผ๋ก ์ง์ธ ํ์ผ์ ์ ํํด์ผํ๋๋ฐ ์ข์ ๋ฐฉ๋ฒ์ด ์๋ ๊ฒ ๊ฐ๋ค. ์ ์ผ ์ข์ ๋ฐฉ๋ฒ์ ๋ก์ปฌ๋๋น๋ฅผ ์ฌ์ฉํด์ ์ฌ์ฉํ๋ ์๊ฐ๋ ๊ณ์ ์ ๋ฐ์ดํธ๋ฅผ ํด์ฃผ๋ ๊ฒ ๊ฐ์๋ฐ, ์ฝ์ด๋ฐ์ดํฐ๋ฅผ ๋์ ํ๊ธฐ์๋ ์ฌ๋ ฅ์ด ์๋ค. ๊ทธ๋์ ์ผ๋จ ๋ง์ดํ์ด์ง์ ์บ์ ์ ์ฅ์ฉ๋์ ํ์ธํ ์ ์๋ ๋ก์ฐ๋ฅผ ํ๋ ์ถ๊ฐํด์ ํญํ์ ๋ ์บ์ฑ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ์ ์๋๋ก ํด์ผํ ๊ฒ ๊ฐ๋ค.
- ์ต๊ทผ์ ์ฝ๊ฐ ํ๊ณ์น๊น์ง ๋ค๋ค๋ฅธ ๋๋์ด ๋ ๋ค. ๋ค์์ฃผ๊ฐ ๋๋๋ฉด ๋ฉฐ์น ๋ง์ด๋ผ๋ ์ ๋๋ก ์ฌ๋ ๊ธฐ๊ฐ์ ๊ฐ์ ธ์ผํ ๊ฒ ๊ฐ๋ค.
๋ด์ผ์ ๊ณํ.
- ๋ฉด์ ์ค๋น ๋ง๋ฌด๋ฆฌ
- ๊ณผ์ ์งํ
์ค๋์ ๊ฐ์ฌ.
- .
'๐ญ ๋ผ-์ดํ > ๐ ํฐ-์์ด-์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ค๋์ ๋ฐฐ์ #114 (2) | 2022.01.12 |
---|---|
์ค๋์ ๋ฐฐ์ #113 (0) | 2022.01.10 |
์ค๋์ ๋ฐฐ์ #111 (0) | 2022.01.07 |
์ค๋์ ๋ฐฐ์ #110 (0) | 2022.01.05 |
์ค๋์ ๋ฐฐ์ #109 ๐๐ปโโ๏ธ (0) | 2022.01.04 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote