Combine 뽀개기 4장: Scheduler
·
Swift
Scheduler A protocol that defines when and how to execute a closure. 클로저를 실행하는 시기와 방법을 정의하는 프로토콜입니다. Scheduler를 사용하는 이유는 우리가 구현한 클로저가 언제 실행될지, 무슨 쓰레드에서 실행될지 제어하기 위해서이다. 때문에 Combine에선 DispatchQueue OperationQueue RunLoop ImmediateScheduler 위와 같은 Scheduler를 제공한다. 위 DispatchQueue, OperationQueue를 이용하여 우린 클로저가 무슨 쓰레드에서 실행될지 제어해줄 수 있고, RunLoop 통해 어떠한 RunLoop에서 실행될 지 결정해 줄 수 있다. ImmediateScheduler는 생소..
Combine 뽀개기 3장: Subject
·
Swift
Subject A publisher that exposes a method for outside callers to publish elements. 외부 호출자가 요소를 게시할 수 있도록 메서드를 노출하는 게시자입니다. Subject또한 프로토콜이다. Subject도 쉽게 생각하면, publisher의 한 종류이다. protocol Subject : AnyObject, Publisher 왜냐하면, Subject 또한 publisher를 채택받고 있기 때문이다. 자그럼 둘은 무슨 차이냐! 일반 publisher 같은 경우 선언과 동시에 방출될 값이 정해진다. 예를 들어, Just 같은 경우에도 let justPublisher = Just("Combine 첫 교시") 정해진 "Combine 첫 교시"라는 값..
Combine 뽀개기 2장: Subscriber
·
Swift
Subscriber A protocol that declares a type that can receive input from a publisher. 게시자로부터 입력을 받을 수 있는 형식을 선언하는 프로토콜입니다. Subscriber는 공식문서에도 쓰여있듯 프로토콜 Subscriber를 채택받은 타입은 Publisher로 부터 방출된 값을 받을 수 있는 녀셕이 된다. 코드로 보면, class CustemSubscriber: Subscriber { typealias Input = String typealias Failure = Never func receive(subscription: Subscription) { print("구독 시작") subscription.request(.max(1)) } func..