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 |