티스토리 뷰

반응형

 

 

오늘은 Combine 프레임워크 개발자문서를 읽어 보도록 하겠습니다. 구글번역이 알아서 해석해주는 세상이지만, 공부차원에서 포스팅을 해봅니다. 의견 지적 언제든 댓글 환영합니다.

 

 


Combine 프레임워크 지원환경

Combine은 iOS13부터 제공하는 기본 프레임워크입니다. 기존에 사용하던 RxSwift라는 외부 라이브러리와 비교할때 유사한 기능을 담당하는 프레임워크로 알고 있습니다.

 

 

Combine Overview
컴바인 개요

Combine은 이벤트-처리-연산자들을 결합하는 방식으로 비동기 이벤트 처리를 정의해주는 프레임워크입니다. 컴바인 프레임워크는 동일한 iOS13버전에 나온 선언적 프로그래밍(Declarative Programming) 방식의 스위프트유아이(SwiftUI)와 함께 사용할 수도 있습니다.

 

 

 

Combine 개요를 보겠습니다. Combine 프레임워크는 시간 흐름에 따른 값 처리를 위해 사용되는 선언적 Swift API(Application Programming Interface)를 제공합니다. 이때 처리되는 값들은 다양한 방식의 비동기 이벤트로 표현될 수 있습니다. Combine은 시간 흐름에 따라 바뀔 수 있는 값들을 방출하는 Publisher와 방출되는 값들을 받는 Subscriber를 선언할 수 있습니다.

1) Publisher 프로토콜은 시간 흐름에 따른 일련의 값들을 전달할 수 있는 타입들을 선언합니다. Publisher들은 upstream Publisher들로부터 받고 내보낼 수 있는 값에 대해 행동을 취할 수 있는 연산자들을 갖고 있습니다.

2) Publisher들의 체인 끝에서 Subscriber들은 특정 값 요소를 받을 때, 이를 처리합니다. Publisher들은 Subscriber들이 특정 일을 명시적으로 요청했을때에만 값을 방출합니다. 이러한 방식은  Publisher들로부터 연결된 Subscriber의 코드들이 이벤트를 받는 속도를 조절할 수 있도록 해줍니다.

 

 

 

 

몇몇 Timer, NotificationCenter, URLSession과 같은 Foundation 타입들은 Publisher를 통해서 그들의 기능을 노출할 수 있습니다. 또한 Combine은 (KVO)Key-Value-Observing과 호환되는 프로퍼티들을 위한 기본적인 Publisher를 제공합니다.

또한 다수의 Publisher의 출력을 결합하고, 이들의 상호작용을 조절할 수도 있습니다. 그 예를 들면, 텍스트필드의 Publisher 업데이트를 구독할 수 있고, 해당 텍스트필드에 입력한 텍스트에 따라 URL 요청을 수행할 수 있습니다. 이때 또다른 Publisher를 사용해서 URL 응답을 처리하고, 처리 값에 따라 앱을 업데이트 시킬 수 있습니다.

Combine을 채택해서 사용함으로서, 이벤트 처리 코드를 중앙 집중화할 수 있고, 중첩 클로져, 컨벤션(convention)기반 콜백과 같은 문제될 수 있는 기술들을 제거할 수 있게되고 이를 통해 코드를 보다 가독성 있게, 유지보수 가능하게 만들 수 있습니다.

 

 

 

 

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함