์ค๋๋ถํฐ RxJava์ ๋ํ์ฌ ๋ธ๋ก๊ทธ์ ๊ธฐ๋ก์ ํด๋ณผ ์๊ฐ์ ๋๋ค. ์ ๊ฐ RxJava๋ฅผ ๋ฐฐ์ฐ๋ ค๋ ์ด์ ๋ ์๋๋ก์ด๋ ์ฑ์ฉ ๊ณต๊ณ ๋ฅผ ๋ณด๋ฉด RxJava๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ฌ๋์ ์ฐพ๊ณ ์๋ ํ์ฌ๋ค์ด ์์ด์ ์๊ฒฉ์๊ฑด์ ์ฑ์ฐ๊ธฐ ์ํด ๋ฐฐ์ฐ๊ณ ๋์ ํ๋ก์ ํธ์ ์ ์ฉํด๋ณผ ๊น ํฉ๋๋ค.Rx๋ ๋ฌด
์ธ์๋ก ๋ฃ์ ๋ฐ์ดํฐ๋ฅผ ์ฐจ๋ก๋ก ๋ฐํํ๋ ค๊ณ Observable์ ์์ฑํฉ๋๋ค. ํน์ ๊ฐ์ด๋ ๋ฏธ๋ฆฌ ์ ์๋ ๊ฐ ์งํฉ์ ๋ฐํํ๋ Observable์ ์์ฑํ๋ ๋ฐ ์ฃผ๋ก ์ฌ์ฉ๋๋ค.๋ฐฑ๋ฌธ์ด ๋ถ์ฌ์ผํ ๋ณด๋ ๊ฑฐ ๋ณด๋ค๋ ์ง์ ์ฝ๋๋ฅผ ์ณ๋ณด์๋ฉด ์ดํด๊ฐ ๊ฐ์ค ๊ฒ๋๋ค๐๋จ์ผ ํญ๋ชฉ์ ๋ฐํํ๋ Obs
Range๋ ์ด๋ฆ ๊ทธ๋๋ก ํน์ ๋ฒ์์ ์ฐ์๋ ์ ์๋ฅผ ๋ฐํํ๋ ์ต์ ๋ฒ๋ธ(observable)์ ์์ฑํ๋ ์ ํธ๋ฆฌํฐ ํจ์์ ๋๋ค.์ด ํจ์๋ ๋น๋๊ธฐ ์์ ์์ ํน์ ํ์๋งํผ ๋ฐ๋ณตํ๊ฑฐ๋, ์ ์ ๋ฒ์๋ฅผ ๋ํ๋ด๋ ๋ฑ์ ์ํฉ์์ ์ฌ์ฉ์ด ๋ฉ๋๋ค.์ฌ์ฉ๋ฒ์ ๊ฐ๋จํด์ range ํจ์์์ ์์ํ
ํน์ ํญ๋ชฉ์ด๋ ์ฐ์๋ ํญ๋ชฉ๋ค์ ๋ฐ๋ณต์ ์ผ๋ก ๋ฐฐ์ถํ๋ Observable์ ์์ฑํ๋ค ์ด ํจ์๋ ๋ฐ๋ณต์ ์ธ ์์ ์ ์ฒ๋ฆฌํ ๋ ์ ์ฉํ๋ค.์ฌ์ฉ๋ฒ์ observable.repeat(n) repeat ํจ์ ์์ n๋ฒ ๋งํผ ๋ฐ๋ณตํ ์ซ์๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋ฉ๋๋ค.
ํน์ ์๊ฐ๋ณ๋ก ์ฐ์๋ ์ ์ํ์ ๋ฐฐ์ถํ๋ Observable์ ์์ฑํ๋ ์ฐ์ฐ์์ด๋ค. ์ด ์ฐ์ฐ์๋ ์ฃผ๊ธฐ์ ์ธ ์์ ์ด๋ ํ์ด๋จธ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ฐ ์ ์ฉํฉ๋๋ค. ์ฆ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋ ํ์ด๋จธ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๊ฑฐ๋, ์ผ์ ํ ๊ฐ๊ฒฉ์ผ๋ก ์์ ์ ์ํํ๋ ๋ฑ์ ๊ตฌํํ ์ ์์ด์
๊ณต์ ๋ฌธ์์ ๋ฐ๋ฅด๋ฉด ์ง์ ๋ ์๊ฐ์ด ์ง๋๊ณ ๋ ํ ํญ๋ชฉ์ ํ๋ ๋ฐฐ์ถํ๋ Observable์ ์์ฑํ๋ค๊ณ ์ค๋ช ์ด ๋์ด์์ต๋๋ค. ์ฃผ๋ก ์ฃผ์ด์ง ์๊ฐ์ด ์ง๋๊ณ ๊ฐ์ ๋ฐํํ๋ ์ผํ์ฑ ์์ ์ด๋ ์ง์ฐ ์คํ์ด ํ์ํ ๊ฒฝ์ฐ์ ์ฌ์ฉ์ด ๋๋ค.Timer ์ฐ์ฐ์๋ Long ํ์ ์ delay ํ
๊ณต์ ๋ฌธ์์ ๋ฐ๋ฅด๋ฉด ์ง์ ์ ์ธ ์ฝ๋ ๊ตฌํ์ ํตํด ์ต์ ๋ฒ ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ Observable์ ์์ฑํ๋ค ๋ผ๊ณ ๊ธฐ๋ก์ด ๋์ด ์๋ค. ์ฝ๊ฒ ์๊ฐํ๋ฉด Observable์ ์ ์ดํ๊ณ ์ฌ์ฉ์๊ฐ ์ํ๋ ๋์์ ์ ์ ํ ์ ์๋ ์ฐ์ฐ์์ด๋ค. ์ฃผ์ํด์ผ ํ ์ ์ Observable์ ๋์
์ด๋ฆ ๊ทธ๋๋ก ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ํญ๋ชฉ๋ค๋ง ๋ฐฐ์ถํ๋ค. ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ์ ํํฐ๋ง ํ๊ฑฐ๋ ๋ถํ์ํ ๊ฐ์ ๊ฑฐ๋ฅด๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ฉด ์ ์ฉํ๊ฒ ์ธ ์ ์์ต๋๋ค.Filter ๋ด๋ถ๋ฅผ ๋ค์ฌ๋ค ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํ์ด ๋์ด์๋๋ฐ filter ๋ฉ์๋๋ @NonNull Predi
Observable์์ ๋ฐํ๋ ๋ง์ง๋ง ํญ๋ชฉ์ ๋ฐํํ๋ค. Last ์ฐ์ฐ์๋ Observable์ด ์ต์ํ ํ ๊ฐ ์ด์์ ํญ๋ชฉ์ ๋ฐํํ๋ ๊ฒ์ด ๋ณด์ฅ๋ ๋ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. ์ด ์์ ๋ newJeansList์์ ๋ง์ง๋ง ์์๋ฅผ ๋ณด์ฌ์ฃผ๋ ์์ ์ ๋๋ค. ์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด newJe
Distinct๋ Observable์ด ๋ฐฐ์ถํ๋ ํญ๋ชฉ๋ค ์ค ์ค๋ณต์ ์ ๊ฑฐํ ํญ๋ชฉ๋ค์ ๋ฐฐ์ถํ๋ค.์ฌ์ฉ๋ฒ์ ๋จผ์ Observable์์ just ํจ์๋ฅผ ์ฌ์ฉํด ์ฐจ๋ก๋๋ก ๋ฐฉ์ถํ๋๋ก ํ๊ณ distinct() ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ณต๋ ์์ดํ ์ ์ ๊ฑฐํฉ๋๋ค.๊ฒฐ๊ณผ๋ฅผ ๊ตฌ๋ ํฉ๋๋ค. ๊ฐ ์์ด
Observable์์ ๋ฐํ๋๋ ํญ๋ชฉ์ ์ผ๋ถ๋ฅผ ๊ฑด๋๋ฐ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค skip์ Observable์ด ๋ฐฐ์ถํ ์ฒ์ n๊ฐ์ ํญ๋ชฉ๋ค์ ์จ๊ธฐ๊ณ skipLast๋ Observable์ด ๋ฐฐ์ถํ ๋ง์ง๋ง n๊ฐ์ ํญ๋ชฉ๋ค์ ์จ๊ธด๋ค์ฌ์ฉ๋ฒ์ ๊ฐ๋จํ๋ค. skip, skipLast๋ฅผ ์ฌ์ฉํด
Observable๋ก๋ถํฐ ์ ๊ธฐ์ ์ผ๋ก ํญ๋ชฉ๋ค์ ์์งํ๊ณ ๋ฌถ์์ผ๋ก ๋ง๋ ํ์ ๋ฌถ์ ์์ ์๋ ํญ๋ชฉ๋ค์ ํ๋ฒ์ ํ๋์ฉ ๋ฐฐ์ถํ์ง ์๊ณ ์์ง๋ ๋ฌถ์ ๋จ์๋ก ๋ฐฐ์ถํ๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ผ์ ํ ํฌ๊ธฐ์ ๊ทธ๋ฃน์ผ๋ก ๋๋๊ฑฐ๋, ์ผ์ ์๊ฐ ๊ฐ๊ฒฉ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ชจ์์ ์ฒ๋ฆฌํ ์ ์๋ค.bu
Observable์ด ๋ฐฐ์ถํ ํญ๋ชฉ์ ํจ์๋ฅผ ์ ์ฉํ๋ค 1๋ถํฐ 5๊น์ง์ ์ซ์๋ฅผ ๋ฐํํ๊ณ , map์ ์ฌ์ฉํ์ฌ ๊ฐ ์ซ์๋ฅผ 2๋ฐฐ๋ก ๋ณํํ๋ ์์ ์ ๋๋ค.246810
ํ๋์ Observable์ด ๋ฐํํ๋ ํญ๋ชฉ๋ค์ ์ฌ๋ฌ๊ฐ์ Observable๋ก ๋ณํํ๊ณ , ํญ๋ชฉ๋ค์ ๋ฐฐ์ถ์ ์ฐจ๋ก์ฐจ๋ก ์ค ์ธ์ ํ๋์ Observable๋ก ์ ๋ฌํ๋ค. FlatMap์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๋ฉด ์คํธ๋ฆผ์ ๊ฐ ํญ๋ชฉ์ ๋น๋๊ธฐ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ณ , ๊ฐ ๋ณํ ๊ฒฐ๊ณผ๋ฅผ ๊ฒฐํฉํ์ฌ ์๋ก์ด ์ต
์๋ณธ Observable์ด ๋ฐฐ์ถํ๋ ํญ๋ชฉ๋ค์ ํค(Key) ๋ณ๋ก ๋ฌถ์ ํ Observable์ ๋ด๋๋ค. ์ด๋ ๊ฒ ํค ๋ณ๋ก ๋ง๋ค์ด์ง Observable๋ค์ ์๊ธฐ๊ฐ ๋ด๊ณ ์๋ ๋ฌถ์์ ํญ๋ชฉ๋ค์ ๋ฐฐ์ถํ๋ค.GroupBy๋ฅผ ์ฌ์ฉํด ๋ด์ง์ค์์ 19์ธ ์ด์์ธ ๋ฉค๋ฒ๋ค๋ง ๋ฌถ์ด ๋ณด๋๋ก ํ๊ฒ ์ต
Merge ์ฐ์ฐ์๋ ์ฌ๋ฌ ๊ฐ์ ์ต์ ๋ฒ๋ธ(Observable)์ ํ๋์ ์ต์ ๋ฒ๋ธ๋ก ๊ฒฐํฉํ๋ ์ฐ์ฐ์์ ๋๋ค.์์ง๋ ํญ๋ชฉ๋ค์ ๋์์ ๋ฐํ๋๋ฉฐ, ๋ณํฉ๋ ์คํธ๋ฆผ์์๋ ํญ๋ชฉ๋ค์ ์์๊ฐ ๋ณด์ฅ๋์ง ์์ต๋๋ค.๋ด์ง์ค ๋ฆฌ์คํธ๋ฅผ ํ๋ ๋ ๋ง๋ค์ด ํฉ์ณ๋ณด๊ฒ ์ต๋๋ค.merge(),merge2()๋
๋ ๊ฐ ์ด์์ Observable๋ค์ด ํญ๋ชฉ์ ๋ฐํํ ๋ Observable ์์๋๋ก ๋ฐฐ์ถํ๋ ํญ๋ชฉ๋ค์ ํ๋์ Observable ๋ฐฐ์ถ๋ก ์ฐ์ด์ด ๋ฐฐ์ถํ๋ค. concat ์ฐ์ฐ์๋ ์ต์ ๋ฒ๋ธ๋ค์ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ณ ์ถ์ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.Observable 2๊ฐ
StartWith๋ Observable์ ์ํธ์ค๋ฅผ ๋ค๋ฅธ Observable ๋๋ ๋ฐ์ดํฐ๋ก ์์ํ ๋ ์ฌ์ฉ๋๋ค. ์ฆ,Observable์์ ํญ๋ชฉ์ ๋ฐฉ์ถํ๊ธฐ ์ ์ ์ง์ ๋ ํญ๋ชฉ ์ํ์ค๋ฅผ ๋ฐฉ์ถํ๋ค.์ฌ์ฉ๋ฒ์ startWith์ฐ์ฐ์์ item1, item2๊ณผ ๊ฐ์ด Observabl
๋ ๊ฐ ์ด์์ Observable์ ์กฐํฉํ์ฌ ์๋ก์ด ์ต์ ๋ฒ๋ธ์ ์์ฑํ๋ ์ฐ์ฐ์์ ๋๋ค. zip ์ฐ์ฐ์๋ ๊ฐ ์ต์ ๋ฒ๋ธ์์ ๋ฐํ๋ ํญ๋ชฉ์ ์กฐํฉํ์ฌ ํํ ๋๋ ๊ฒฐ๊ณผ ํญ๋ชฉ์ผ๋ก ๋ฐํํ๋ค.zip ํจ์์๋ Observable.zip()์ ์ฌ์ฉํ๊ธฐ ์ํด num, char์ Observ