์ฐ์ฐ์(Operators)๋ 5๊ฐ ํ ๋ง๋ก ๋ถ๋ฅํ ์ ์๋ค. - Transforming, Filtering, Combining , Time Manipulating, Sequence.
Transforming
๋จผ์ Transforming ์นดํ ๊ณ ๋ฆฌ๋ถํฐ ์์๋ณด์. ์ฒซ๋ฒ์งธ ์ฐ์ฐ์๋ก collect ์ฐ์ฐ์๊ฐ ์๋ค. collect ์ฐ์ฐ์๋ ๊ฐ ๊ฐ๋ณ์ value๋ฅผ ๊ตฌ๋ ์์ ์ ๋ฐฐ์ด๋ก ํ ๋ฒ์ ๋ฌถ์ด์ ๋ฐฉ์ถ์ํจ๋ค. ๋ง์ฝ ๋ฐ๋ ๊ฐ์๋ฅผ ๋์ด์ ๋ฐ๊ณ ์ถ๋ค๋ฉด collect() ์ ํ๋ผ๋ฏธํฐ int ๊ฐ์ ๋ฃ์ด ์ํ๋ ๊ฐฏ์๋งํผ ์ด๋ฒคํธ๋ value๋ฅผ ๋ฐ์ ์ ์๋ค.
๋ค์ Transforming ์ฐ์ฐ์๋ก๋ map ์ด๋ค. ์ฐ๋ฆฌ๊ฐ ์ผ๋ฐ์ ์ผ๋ก ์๋ map ๊ณ ์ฐจํจ์์ ๋งค์ฐ ์ ์ฌํ๋ค. ์ ์คํธ๋ฆผ์์ ๋ฐธ๋ฅ๋ฅผ ๋ฐ์์ ๊ฐ๋ณ์ ์ผ๋ก ์ฒ๋ฆฌํด์ค ๋ค ๋ค์ด์คํธ๋ฆฝ์ ํ๋ ค๋ณด๋ด์ค๋ค. ์์ collect์์ ์ฐจ์ด๋ ๋ฐธ๋ฅ๋ฅผ ๋ฌถ์ด์ ๊ทธ๋๋ก ๋ฐ์ ๊ฒ์ธ๊ฐ ์๋๋ฉด ๊ฐ๋ณ์ ์ธ ๊ฐ์ ๊ฐ๊ณตํ ํ ๋ฐ์ ๊ฒ์ธ๊ฐ๋ผ๊ณ ํ ์ ์๋ค.
๋ค์ Transforming ์ฐ์ฐ์๋ replaceNil ์ด๋ค. ์ด ์ฐ์ฐ์๋ ์ ์คํธ๋ฆผ์์ ์ด๋ค ๋ฐธ๋ฅ๋ฅผ ๋ฐ๋๋ผ๋ ์ต์ ๋ ๊ฐ์ ์์์ ๋ฐํํ๋ค. ๋ง์ฝ ๊ฐ์ด ์๋ค๋ฉด ๋ฏธ๋ฆฌ ์ง์ ํด๋ ๊ธฐ๋ณธ๊ฐ+์ต์ ๋๋ก ๋ฐํํด๋ฒ๋ฆฐ๋ค.
๋ค์ transforming ์ฐ์ฐ์๋ replaceEmpty() ์ด๋ค. ์ด ์ฐ์ฐ์๋ ๋น์ด์๋ ์คํธ๋ฆผ์ ๊ตฌ๋ ํ ๋ ๋ํดํธ ๊ฐ์ ์ ํ ํด์ค ์ ์๋ค.
๋ค์ transforming ์ฐ์ฐ์๋ scan()์ผ๋ก ์ด์ ๊ฐ๊ณผ ํ์ฌ ๋ฐ์์จ ๊ฐ์ ์ฌ๋ฃ๋ก ์๋ฆฌํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
flatMap์ ๋ชจ๋๋ ๊ฐ๋ ์ ์ด์ฉํ๋ค. Publisher ๋ผ๋ ์์๋ฅผ ์ด์ด ๋ด์ฉ๋ฌผ์ ์ํ๋ ๋๋ก ์๋ฆฌํ ํ(ํ์ ์ด ๋ฌ๋ผ์ ธ๋ ์๊ด์๋ค!) ๋ค์ ๋ณธ๋ ์์์ธ publisher ์์ ๋ฃ์ด ํฌ์ฅํํ ๋ค์ด์คํธ๋ฆผ์ ๋ด๋ ค๋ณด๋ธ๋ค. ๋ฐ๋ผ์ flatMap ์ฐ์ฐ์๋ฅผ ์ด์ฉํ๋ฉด ์ ์คํธ๋ฆผ์ผ๋ก ์๋ Publisher ๊ฐ ์๊ฒจ๋๋๋ฐ ๊ทธ๊ฑธ ๋๋ค์ ๊ตฌ๋ ํด์ฃผ์ด ์ฌ์ฉํ ์ ์๋ค. ์ ๋ฆฌํ์๋ฉด flatMap์ ํ๋์ ์์ํ์ ๋ ๊ฐ ์ด์์ publisher๋ฅผ ํฉ์ฑ(combine)ํ ์ ์๋ค.
https://www.kodeco.com/5429795-reactive-programming-in-ios-with-combine/lessons/9
'๐ฆ Flutter' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Combine | 4. Filtering Operators (0) | 2024.05.09 |
---|---|
UIView ์ Drawing Cycle (0) | 2024.05.08 |
| Combine | 2. Operators and Subjects (0) | 2024.05.07 |
ViewController์ ์๋ช ์ฃผ๊ธฐ (0) | 2024.05.06 |
| Combine | 1. Getting Started (0) | 2024.05.05 |