[Combine] Combine 이란?

안녕하세요🐶

빈지식 채우기의 비니🙋🏻‍♂️입니다.

 

요즘 RxSwift 공부를 통해 비동기 프로그래밍에 대해 블로그도 작성하고 있는데,

First-Party 인 Combine 이라는 것이 있더라구요!

.

마찬가지로 Combine 또한 Apple에서 자체적으로 개발한 비동기 프로그래밍을 지원하는 프레임워크입니다.

( Apple 에서 개발한 RxSwift 라고 보면 됨 크크 🧐 )

.

여튼! Combine에 대해서도 차근차근 공부하며 블로그 작성을 해보도록 하겠습니다.

그럼 시작합네다✋🏻


1. Combine 이란

2019년 Apple에서 만든 새로운 비동기 프로그래밍 프레임워크.
 

Combine | Apple Developer Documentation

Customize handling of asynchronous events by combining event-processing operators.

developer.apple.com

애플 공식 문서에 따르면 아래와 같이 정리할 수 있다.

.

.

시간 경과에 따라 변경되는 값을 내보내는 Publisher와

이를 수신하는 Subscriber로  시간 경과에 따른 값을 처리하는 Swift API

.

.

간단하게 말해서 PublisherSubscriber를 이용하여 비동기 프로그래밍을 처리하는 것이다~ 라고 이해하면 됩니다.


2. Combine의 구성 요소

Combine은 어떤 요소로 비동기 프로그래밍을 지원하는지 알아보도록 할게요!

 

2-1. Publisher

protocol Publisher<Output, Failure>
  • Publisher하나 이상의 Subscriber 인스턴스에 요소를 전달합니다.
  • Output, Failure 타입이 AssociatedType으로 구현되어 있습니다.
  • Apple 에서는 RxSwift와 비슷하게 사용되도록 아래와 같은 것들이 구현되어 있습니다.
    • Future
    • Just
    • Deferred
    • Empty
    • Fail
    • Record 

 

2-2. Subscriber

protocol Subscriber<Input, Failure> : CustomCombineIdentifierConvertible

 

  • Publisher에게 요소를 전달 받습니다.
  • Input, Failure 타입이 AssociatedType으로 구현되어 있습니다.
  • 아래와 같은 Operator를 제공합니다.
    • Sink
    • Assign

이상으로 간단하게 Combine 정의에 대해 알아보았습니다.

다음 포스팅 부터는 본격적으로 각각의 구성요서에 대해 자세히 알아보도록 하겠습니다.

감사합니다.


참고

반응형