본문 바로가기
Swift

Swift: Combine(1) - Combine

by songmoro 2023. 11. 3.
728x90

Combine: Customize handling of asynchronous events by combining event-processing operators.(이벤트 처리 연산자를 결합하여 비동기 이벤트 처리를 사용자 정의하세요.)

 

Combine은 비동기 이벤트 처리를 위한 프레임워크입니다.

 

Publisher는 시간이 지남에 따라 바뀔 수 있는 값(= 비동기 처리를 위한 값)을 전달하고, Subscriber는 Publisher로부터 그 값을 받을 수 있습니다.

 

  • Publisher 프로토콜은 시간이 지남에 따라 일련의 값을 전달할 수 있는 타입을 선언합니다. upstream publisher로 부터 받은 값에 따라 행동하거나 republish 할 수 있는 운영자가 있습니다.
  • Publisher 체인의 끝에서, Subscriber는 받은 요소에 따라 행동합니다. Publisher는 Subscriber가 명시적으로 요청할 때만 값을 방출(emit) 하고, 이는 Subscriber 코드에 연결된 Publisher로부터 이벤트를 얼마나 빨리 받는지 제어할 수 있게 해 줍니다.

 

 

Timer, NotificationCenter, URLSession와 같은 타입들은 Publisher를 통해 제어할 수 있고, Combine은 Key-Value Observing을 준수하는 모든 속성에 대한 내장 Publisher를 제공합니다.

 

 

여러 Publisher의 출력을 결합하고, 상호 작용을 조정할 수 있는데 예를 들어, 텍스트 필드의 Publisher로부터 업데이트되는 사항을 구독하고, 텍스트를 사용하여 URL 요청을 수행할 수 있어요.

이후 다른 Publisher를 사용하여 응답을 처리하고 앱을 업데이트할 수 있습니다.

 

 

Combine을 채택함으로써 이벤트 처리 코드를 중앙 집중화하고, 중첩된 클로저 및 컨벤션 기반 콜백과 같은 번거로운 기술을 제거하여 코드를 더 쉽게 읽고 유지할 수 있게 해 줍니다.

 

 

정리

Combine은 앱의 이벤트를 처리하는 방법에 대한 선언적 접근 방식을 제공함으로써, 이벤트 소스에 대한 단일 처리 로직을 가능하게 해주는 프레임워크입니다.

Combine에는 시간 경과에 따라 일련의 값을 전달해 주는 Publisher와 값을 전달받는 Subscriber가 있습니다.

 

 


참고

Swift Combine, 시작하기

728x90

'Swift' 카테고리의 다른 글

Swift: Combine(3) - Cancellable  (0) 2023.11.03
Swift: Combine(2) - Publisher, Subscriber  (0) 2023.11.03
SwiftUI: ViewBuilder  (1) 2023.10.18
Swift: Override extension  (1) 2023.10.01
Swift: Result type  (0) 2023.10.01