Publisher를 구독하는 방법은 3가지 임.

1. sink 예시

let publisher = Just("hello world")
let cancellable = publisher.sink{ print($0) }

2. assign

Observable Object 에 published var 로 선언된 프로퍼티는 assign을 통해 값할당이 가능함.

class SomeClass : ObservableObject { 
	@publisehd var tmp 
}

let publisher = Just("hello world")
publisher.assign(to: \\.tmp, on:someclass)

3. subscribe

subscirbe 프로토콜은 체택한 커스텀 subscribe를 구현해 사용할수 있음.

Intput, Output , receive 함수 3개 구현하면됨.

class MySubscriber : Subscriber {
		typealias Input = String
    typealias Failure = Never
    
    func receive(subscription: Subscription) {
        subscription.request(.unlimited)
    }
    
    func receive(_ input: String) -> Subscribers.Demand {
        print(input)
        return .none
    }
    
    func receive(completion: Subscribers.Completion<Never>) {
        // Handle completion if needed
    }
}

Just("hello world").subscirbe(MySubscriber())