Cancellable
말 그대로 취소가 가능함을 나타내는 프로토콜
AnyCancellable
Subscription 이 리턴하는 인스턴스의 타입.
구독 취소를 위한 손잡이라고 보면된다.
•
AnyCanacellable 타입은 Cancellable 프로토콜을 준수함.
◦
cancel() 메서드 사용 가능
•
정확히 말하면, AnyCancellable 타입은 Subscription 프로토콜을 준수하고,
Subscription 프로토콜은 Cancellable 프로토콜을 상속받음.
구독을 취소해주지 않으면??
Publisher 가 completion 이벤트를 발행하기 전까지 구독이 유지되며, 메모리를 잡아먹음.
단, 저장된 subscription 이 deinit 되는 경우에는 자동으로 구독을 취소함.
•
subscription 이 저장된 scope 를 벗어날 때.
subscription 을 저장해주지 않으면!!
subscription 이 생성된 맥락을 벗어나게 되면 자동으로 구독을 취소하게 되니 주의하자!!