WWDC2019에서 처음 소개된 프레임워크
시간에 따라 값을 처리하기 위한 선언적(declarative) Swift API를 제공
Combine은 publisher가 시간이 지남에 따라 변경될 수 있는 값을 expose하고, subscribers가 publisher로부터 해당 값을 받도록 선언한다.
타입이 시간에 따라 일련의 값을 전송할 수 있음을 선언
하나 이상의 Subscriber 인스턴스에게 element를 제공
Publisher는 receive(subscriber:) 메소드를 구현해 subscriber를 accept함
Publisher로부터 input을 받을 수 있는 타입을 선언하는 프로토콜
Publisher는 값을 주는 것, Subscriber는 값을 받는 것
지정된 Subscriber의 입력 및 실패 associated type은 해당 게시자의 출력 및 실패와 일치해야 한다.
subscriber를 publisher에 연결하기 위해서는 publisher의 subscriber(_:)
메소드를 사용하면 된다. 이렇게 하면 subscriber에게 구독 instance가 제공된다. 이것은 publisher에게 element를 요구하고 선택적으로 구독을 취소하는데 사용된다. subscriber가 initial 요청을 한 후, publisher는 새로 published된 요소를 전달하기 위해 가능한 비동기적으로 receive(_:)
를 호출한다. 만약 publisher가 publishing을 중지하면 publisher는 Subscribers.Completion
유형의 매개변수를 사용하여 publishing이 정상적으로 완료되는지 또는 에러가 발생하는지를 나타낸다.
Combine은 Publisher type의 연산자로 다음의 subscriber들을 제공한다.