Combine이 어떤 것인지 짧게 훑어보세요!
비동기 이벤트를 처리하기 위해 이벤트 처리 연산자를 조합하여 커스터마이즈할 수 있는 프레임워크입니다.
Combine 프레임워크는 시간에 따라 변하는 값을 처리하기 위한 선언적 Swift API를 제공합니다. 이 값들은 다양한 비동기 이벤트를 나타낼 수 있습니다. Combine은 시간이 지남에 따라 값이 변할 수 있는 Publisher(퍼블리셔)
를 선언하고, 이 값을 받을 수 있는 Subscriber(구독자)
를 정의합니다.
Publisher 프로토콜은 시간에 따라 일련의 값을 전달할 수 있는 타입을 선언합니다.
퍼블리셔는 상위 퍼블리셔로부터 받은 값을 처리하고 다시 발행(republish)할 수 있는 연산자(operator)를 가지고 있습니다.
Subscriber는 퍼블리셔가 방출한 요소를 처리합니다.
퍼블리셔는 구독자가 명시적으로 요청했을 때만 값을 방출하므로, 구독자 코드가 이벤트를 받는 속도를 제어할 수 있습니다.
Foundation의 여러 타입(예: Timer
, NotificationCenter
, URLSession
)은 퍼블리셔를 통해 기능을 제공합니다.
Combine은 또한 Key-Value Observing(KVO)을 준수하는 모든 속성에 대해 내장 퍼블리셔를 제공합니다.
여러 퍼블리셔의 출력을 조합하고 상호작용을 조정할 수 있습니다.
예를 들어, 텍스트 필드 퍼블리셔의 업데이트를 구독하고 해당 텍스트를 사용해 URL 요청을 수행한 뒤, 응답을 처리해 앱을 업데이트하는 흐름을 설계할 수 있습니다.
Combine을 사용하면 이벤트 처리 코드를 중앙 집중화하여 가독성을 높이고 유지 관리를 쉽게 할 수 있습니다.
중첩된 클로저와 규약 기반 콜백을 제거할 수 있습니다.