iOS
[iOS] Combine / 컴바인
Kim_Baechu
2022. 10. 24. 20:28
Combine
https://developer.apple.com/documentation/combine
이벤트 처리 연산자를 결합하여 비동기 이벤트 처리를 사용자 정의합니다.
Overview
Combine 프레임워크는 시간 경과에 따른 값 처리를 위한 선언적 Swift API를 제공합니다
이러한 값은 여러 종류의 비동기 이벤트를 나타낼 수 있습니다.
Combine은 게시자(publishers)가 시간에 따라 변경될 수 있는 값을 노출하도록 선언하고 구독자(subscribers)는 게시자로부터 해당 값을 수신하도록 선언합니다.
- Publisher 프로토콜은 시간에 따라 일련의 값을 전달할 수 있는 유형을 선언합니다. 게시자(Publishers)에는 업스트림 게시자로부터 받은 값에 따라 작업을 수행하고 다시 게시할 수 있는 운영자(operators)가 있습니다.
- 게시자 체인의 끝에서 구독자(Subscriber)는 요소를 수신하는 대로 요소에 대해 작업을 수행합니다. 게시자는 구독자가 명시적으로 요청한 경우에만 값을 내보냅니다. 이렇게 하면 구독자 코드가 연결된 게시자로부터 이벤트를 수신하는 속도를 제어할 수 있습니다.
Timer, Notificationcenter, URLSession와 여러 Foundation 타입은 게시자를 통해 기능을 표시합니다.
또한 Combine은 Key-Value Observing을 준수하는 모든 속성에 대한 기본 제공 게시자를 제공합니다.
여러 게시자의 출력(output)을 결합하고 상호 작용을 조정할 수 있습니다.
예를 들어 텍스트 필드의 게시자에서 업데이트를 구독하고 텍스트를 사용하여 URL 요청을 수행할 수 있습니다.
그런 다음 다른 게시자를 사용하여 응답을 처리하고 앱을 업데이트하는 데 사용할 수 있습니다.
Combine을 채택하면 이벤트 처리 코드를 중앙 집중화하고 중첩 폐쇄 및 convention-based 콜백과 같은 번거로운 기술을 제거하여 코드를 읽고 유지 관리하는 것이 더 쉬워집니다.