๋ฐ˜๊ฐ‘๋‹คโœ‹๐Ÿป, Combine

Woozooยท2022๋…„ 12์›” 18์ผ

Async 101

  • ๋น„๋™๊ธฐ ์ž‘์—…์€ ๋ญ์•ผ? ->
    - ๋™๊ธฐ: ์š”์ฒญ๊ณผ ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ๋™์‹œ์—
    • ์˜ˆ) ์˜คํ”„๋ผ์ธ์—์„œ 1:1 ๋Œ€ํ™”๋ฅผ ํ•  ๋•Œ
      • ๋Œ€๋‹ต์ด ๋ฐ”๋กœ ์˜ฌ ๊ฒƒ์œผ๋กœ ์•Œ์•„
  • ๋น„๋™๊ธฐ: ์š”์ฒญ๊ณผ ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ๋™์‹œ๊ฐ€ ์•„๋‹˜
    - ์˜ˆ) ์ด๋ฉ”์ผ๋กœ ๋Œ€ํ™”
    • ๋Œ€๋‹ต์ด ์–ธ์ œ ์˜ฌ์ง€ ๋ชฐ๋ผ
  • ๋ชจ๋ฐ”์ผ ๊ฐœ๋ฐœ์—์„œ ๋น„๋™๊ธฐ ์ž‘์—…์€ ์ˆ˜๋‘๋ฃฉ ๋นฝ๋นฝ ์—„์ฒญ ๋งŽ์Œ
    - ์˜ˆ)
    • ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ ๋ฐ›์•„์™€์„œ ํŽ˜์ด์ง€ ๋ณด์—ฌ์ฃผ๊ธฐ(์–ธ์ œ ๋„คํŠธ์›Œํฌ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ ๋ฐ›๋Š”๊ฒŒ ์™„๋ฃŒ๋ ์ง€ ๋ชฐ๋ผ..)
    • ์‚ฌ์šฉ์ž์˜ ๋ฒ„ํŠผ ์ธํ„ฐ๋ž™์…˜ (์–ธ์ œ ํ„ฐ์น˜ ํ• ์ง€ ๋ชฐ๋ผ...)

์™œ Combine์ด ์†Œ๊ฐœ ๋˜์—ˆ๋Š”๊ฐ€?

  • ์™œ?
    - ํšจ์œจ์ ์ธ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ
    - ๊ธฐ์กด์˜ ๋น„๋™๊ธฐ์ฒ˜๋ฆฌ ๋ฐฉ์‹๋“ค
    - Target/Action
    - Notification Center
    - URLSession
    - KVO
    - Ad-hoc callbacks
    - ์—ฌ๋Ÿฌ ๋ฐฉ์‹๋“ค์„ ์กฐํ•ฉํ•ด์„œ ๊ฐœ๋ฐœํ•˜๋‹ค ๋ณด๋‹ˆ, ์ฝ”๋“œ๋„ ๋ณต์žก์“ฐ
    - ํ†ตํ•ฉ๋œ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด ํ•„์š”

    • ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” API๋ฅผ combine์œผ๋กœ ์ œ๊ณต

    • A unified, declarative API for processing values over time

      Combine Overview

  • 3๊ฐ€์ง€ ์ฃผ์š” ์ปดํผ๋„ŒํŠธ

    • Publisher

      • ์ด๋Ÿฐ ๋‹จ์–ด๊ฐ€ ์–ด์šธ๋ฆผ: ์ƒ์‚ฐ์ž, ๋ฐฐ์ถœ์ž, ํฌ๋ฆฌ์—์ดํ„ฐ, ๋ฐฐ์„ค์ž
    • Subscriber

      • ์ด๋Ÿฐ ๋‹จ์–ด๊ฐ€ ์–ด์šธ๋ฆผ: ์†Œ๋น„์ž, ๊ตฌ๋…์ž, ๋ฐ›๋Š” ์‚ฌ๋žŒ
    • Operator

      • ์ด๋Ÿฐ ๋‹จ์–ด๊ฐ€ ์–ด์šธ๋ฆผ: ๋ณ€๊ฒฝ์‹œํ‚ค๋Š” ์‚ฌ๋žŒ, ๋งˆ๋ฒ•์‚ฌ, ๊ฐ€๊ณตํ•˜๋Š” ์‚ฌ๋žŒ
  • Event Stream (Event pipeline)
profile
์šฐ์ฃผํ˜•

0๊ฐœ์˜ ๋Œ“๊ธ€