-
[TCA] fireAndForgetTCA/TCA Study 2023. 4. 13. 10:08
TCA์ fireAndForget์ ๋ํด ์์๋ณด์!
๊ทธ ์ ์, fireAndForget์ ์ฐพ์๋ณด๋ฉด ๋ฏธ์ฌ์ผ๊ณผ ๊ด๋ จํ ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
Fire And Forget
- ๋ฐ์ฌ ํ ํ์ ์กฐ๋ช ์ด๋ ์ ์ ์ ๋ ๋ฑ ์ถ๊ฐ์ ์ธ ์ธ๋ถ ๊ฐ์ ์ด ํ์ํ์ง ์๊ณ ๋ฐ์ฌ์๊ฐ ํ์ ์ ๊ฐ์๊ถ์ ๋ค์ด๊ฐ์ง ์์๋ ํ์ ์ ํ๊ฒฉํ ์ ์๋ ๋ฏธ์ฌ์ผ ์ ๋ ํ์
- ๋ฏธ์ฌ์ผ์ ์ ๋ํ๊ธฐ ์ํด ํ์ ๊ทผ์ฒ์ ๋จธ๋ฌด๋ฅด๋ ์ฌ๋์ด๋ ์ฐจ๋ ๋ฑ์ ๊ณต๊ฒฉ์ ์ทจ์ฝํ๊ณ , ๋ค๋ฅธ ์๋ฌด๋ฅผ ์ํํ ์ ์๊ธฐ ๋๋ฌธ์ ์ ๋ ๋ฌด๊ธฐ๊ฐ ๊ฐ์ถ์ด์ผ ํ ์ค์ํ ํน์ฑ!
์ฝ๊ฒ ๋งํด ๋ฏธ์ฌ์ผ์ ๋ฐ์ฌ (Fire)ํ๋ฉด, ๊ทธ ๋ฏธ์ฌ์ผ์ ์์์ ํ์ ์ ํฅํด ๋ ์๊ฐ๊ธฐ ๋๋ฌธ์ ๋ฐ์ฌ์๋ ๋ฏธ์ฌ์ผ์ ๋ํด ์๊ณ ์์ด๋ (Forget) ์์์ ํ์ ์ ๋ช ์คํ๋ค๋ ์ด์ผ๊ธฐ๋ค. ์ฆ, ๋ฐ์ฌ ํ ๋ง๊ฐ์ด๋ผ๋ ์๋ฏธ๋ค.
๋ฏธ์ฌ์ผ ๋ฐ์ฌ์๋ ๋ฐ์ฌํ ๋ฏธ์ฌ์ผ์ ๋ค์ ์ดํด๋ณผ ํ์๊ฐ ์์ผ๋ฏ๋ก ๋ค๋ฅธ ํ์ ์ ๋ํด ๋ฏธ์ฌ์ผ์ ๋ ๋ฐ์ฌํ๊ฑฐ๋, ๊ทธ๋๋ก ์ดํํ์ฌ ๋๋ง์น๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค. ์ด๋ป๊ฒ๋ ๋ฐ์ฌ์์ ์์กด๋ฅ ์ ๋์ฌ์ฃผ๋ ์ ์ด๋ค.
TCA์์์ fireAndForget?
Store์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ๋๊ธธ ํ์๊ฐ ์๋ ์์ ์ ์คํํ๋ Effect๋ฅผ ์์ฑํ๋ค. ๋ง์ฝ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด, Effect๋ ์๋ฃ๋๊ณ ์ค๋ฅ๋ ๋ฌด์๋๋ค.
์ฆ ๋ฏธ์ฌ์ผ์์์ Fire And Forget์ฒ๋ผ, ์์ ์ ์คํํ๊ณ ์ค๋ฅ๊ฐ ์๊ธฐ๋ ๋ง๋ ์๊ด ์ํด๋ฒ๋ฆฌ๋! ๊ทธ๋ฐ ๋๋!!!!!! ์ ๋ง ์คํํ๊ณ ๋๋ด๋ฒ๋ฆฌ๋~~~ ๊ทธ๋ฐ~~?
์๋ ์์์ฒ๋ผ ํฝ์ณ์์ ๋์ํ ํ์๊ฐ ์๋ ์ผ๋ถ ๋น๋๊ธฐ ์์ ๋ค์ ์คํํ๋ ๋ฐ ์ ์ฉํ๋ค.
case .buttonTapped: return .fireAndForget { try self.analytics.track("Button Tapped") }fireAndForget์ ์ ๊ณต๋ ํด๋ก์ ๋ throw ๊ฐ๋ฅํ๋ฉฐ, throw๋ ์ค๋ฅ๋ ๋ฌด์๋๋ค.
์ฆ, ์๋ฌ ์ฒ๋ฆฌ ํ์๊ฐ ์์ ๋ ์ฌ์ฉํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค!
+ fire and forget pattern
ํธ์ถํ ์ค๋ ๋๋ก๋ถํฐ ์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ , ํ๋ก์ธ์ค ํ๋ฆ์ ์ ์งํ ์ฑ ๋ค๋ฅธ ์ค๋ ๋๋ฅผ ํธ์ถํ๋ ๊ฒ์ fire and forget ํจํด์ด๋ผ๊ณ ํ๋ค.
๋ํ ๋น๋๊ธฐ ๋ฉ์์ง ํจํด ์ค ํ๋๋ก๋ ์ฌ์ฉ๋๋๋ฐ, ํด๋ผ์ด์ธํธ๊ฐ ํธ์ถํ ํ ํ์ ๋ฉ์์ง๊ฐ ์ ๋๋ก ๋ค์ด๊ฐ๋ค๋ฉด ๋ฉ์์ง ์ฒ๋ฆฌ ๊ฒฐ๊ณผ์ ์๊ด์์ด (์๋ต์ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ) ๋ฐ๋ก ๋ฐํํ๋ค.
Documentation
pointfreeco.github.io
Fire & Forget - ๋๋ฌด์ํค
์ด ์ ์๋ฌผ์ CC BY-NC-SA 2.0 KR์ ๋ฐ๋ผ ์ด์ฉํ ์ ์์ต๋๋ค. (๋จ, ๋ผ์ด์ ์ค๊ฐ ๋ช ์๋ ์ผ๋ถ ๋ฌธ์ ๋ฐ ์ฝํ ์ ์ธ) ๊ธฐ์ฌํ์ ๋ฌธ์์ ์ ์๊ถ์ ๊ฐ ๊ธฐ์ฌ์์๊ฒ ์์ผ๋ฉฐ, ๊ฐ ๊ธฐ์ฌ์๋ ๊ธฐ์ฌํ์ ๋ถ๋ถ์ ์ ์๊ถ
namu.wiki
๋ฉ์์ง ๊ตํ ํจํด์ด๋(MESSAGE EXCHNAGE PATTERN) | ๊ฐ๋ฐ์ ์ด๋์ฑ
๋น๋๊ธฐ ๋ฉ์์ง ํจํด ๋น๋๊ธฐ ๋ฉ์์ง ํจํด์ ์์ ์ดํด๋ณด์๋ฏ์ด ์ค๊ฐ์ ํ๋ฅผ ๋์ด์ ๊ตฌํํ๊ธฐ ๋๋ฌธ์, ์ฌ๋ฌ ๊ฐ์ง ๋ฉ์์ง ์ ๋ฌ ํจํด์ ๊ตฌํํ ์ ์๋ค. ๋ช ๊ฐ์ง ๋ํ์ ์ธ ํจํด์ ๋ํด์ ์์๋ณด์. F
dongwooklee96.github.io