iOS/Combine

Combine (1) - 개요

2023. 1. 28. 01:23
목차
  1. 개념
  2. 주요 용어

WWDC2019에 등장한 Combine !!! Swift5.0부터 적용됨.! (async, await는 Swift5.5)

개념과 관련된 내용들은 공식문서를 번역하여 정리하였다 ㅎㅅㅎ

https://developer.apple.com/documentation/combine

앞으로의 Combine 내용도 공식문서에 기초하여 기록할 예정 🧸

 


 

개념

💡 이벤트 처리 연산자들을 통해 비동기 이벤트들을 핸들링 할 수 있게 하는 것
  • Combine Framework는 시간에 따른 값 처리 Swift API를 제공한다. 여기서 값이란, 많은 종류의 비동기 이벤트들을 말한다.
  • Combine은 시간에 따른 값을 제공할 수 있는 Publishers와 Publishers로부터 해당 값들을 받는 Subscribers로 정의된다.
  •  Timer, NotificationCenter 및 URL Session을 포함한 여러 Foundation 유형이 Publisher를 통해 기능을 드러낸다.
  • 또한 Combine은 Key-Value Observing을 준수하는 모든 속성에 대해 내장 Publisher를 제공한다.
  • 여러 Publisher의 출력을 결합하고 상호 작용을 조정할 수 있다. 예를 들어, TextField의 Publisher에서 업데이트를 구독하고 Text를 사용하여 URL 요청을 수행할 수 있다. 그런 다음 다른 Publisher를 사용하여 응답을 처리하고 이를 사용하여 앱을 업데이트할 수 있다.
  • Combine을 채택하면 이벤트 처리 코드를 중앙 집중화하고 중첩된 클로저 및 컨벤션 기반 콜백과 같은 번거로운 기술을 제거하여 코드를 읽고 유지보수하기 쉽게 만들 수 있다.
비동기로 동작하는 모든 유형을 통합함 !!

 


📌 이전에 존재했던 비동기 인터페이스

Target/Action, Notification center, URLSession, Key-value observing, Ad-hoc callbacks

 

 

주요 용어

  • Publisher
    • 하나 혹은 여러 개의 Subscriber 객체에 시간이 흐름에 따라 값을 내보낼 수 있는 타입을 선언하기 위한 프로토콜
    • Output, Failure 타입이 제네릭으로 구현되어 있다.
    • Future, Just, Deferred, Empty, Fail, Record와 같은 Publisher 프로토콜을 준수하는 Struct, Class들이 미리 구현되어 있다.
    • Subscribers가 요청한 경우에만 값을 보낸다.
  • Subscriber
    • Publisher에게 값을 받을 수 있는 타입을 선언하기 위한 프로토콜
    • Input, Failure 타입이 제네릭으로 구현되어 있다.
  • Operator
    • Publisher를 반환하는 Publisher 프로토콜에 정의된 메서드들
    • 여러 종류의 Operator를 Combine 하여 사용하여 Publisher가 내보내는 값을 처리한다.
    • Upstream, DownStream이라고 하는 Input, Output을 가지고 있다.
  • Subscription
    • Publisher와 Subscriber의 연결을 나타내는 프로토콜
    • 즉, Publisher + Operator + Subscriber로 이뤄진 하나의 작업이 Subscription

 

출처 : https://icksw.tistory.com/271

 

 


 

 

블로그 안 쓴 지 너무 오래됐다... ㅜ_ㅜ

프로젝트를 진행하면서 비동기 프레임워크로 async/await을 쓰다가 Combine도 경험해보고자 공부를 했따당

남은 Combine 내용들은 다음 글에서 ~ !

async/await도 정리해서 남겨둬야겠다..📚

글을 마무리하며.. 오늘 만났던 오리 가족들 ㅎㅎ 🦆 어디로 가고 있늬 ~

 

 

'iOS > Combine' 카테고리의 다른 글

Combine (3) - Subject  (0) 2023.04.02
Combine (2) - Publisher, Subscriber, Subscription  (0) 2023.02.12
  1. 개념
  2. 주요 용어
'iOS/Combine' 카테고리의 다른 글
  • Combine (3) - Subject
  • Combine (2) - Publisher, Subscriber, Subscription
릴 루
릴 루
릴 루
RIRU
릴 루
전체
오늘
어제
  • 분류 전체보기 (13)
    • 개발환경 (1)
    • iOS (9)
      • SwiftUI (6)
      • Combine (3)
      • UIKit (0)
    • Algorithm (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 알고리즘
  • subject
  • combine
  • AppStorage
  • 브루트포스
  • swift
  • hybrid
  • DP
  • 백트래킹
  • DFS
  • First Tistory
  • Swift 기반의 iOS 프로그래밍
  • Firebase
  • SwiftUI
  • native
  • Web App
  • ios
  • userDefaults
  • SwiftUI 기반의 iOS 프로그래밍
  • xcode

최근 댓글

최근 글

hELLO · Designed By 정상우.
릴 루
Combine (1) - 개요
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.