안녕하세요! 왈라비🦘 입니다!

이번에는 share이라는 연산자에 대해서 알아보겠습니다.

share이라 하면 무언가를 공유하다라는 것이 바로 떠오르실 텐데요.

RxSwift에서의 share도 마찬가지로 무언가를 공유하다 라는 개념을 지닌 연산자 입니다.

그럼 어떤걸 공유하냐?

바로 Observable을 공유하는 것 입니다.

정확히는 Observable 시퀀스를 공유하는 것이죠.

사실 이런 연산자가 등장하게 된 이유를 Observable의 작동원리에 대해서 아신다면 쉽게 이해하실 수 있습니다.

Observable은 구독자에 의해서 구독되기 전까지 Observable.create 클로저 내부에 구현되어있는 내용들이 실행되지 않습니다.

이런걸 cold observable❄️ 이라고도 합니다.

그리고 Observable은 구독자에 의해서 구독이 되면 그제서야 Observable.create 클로저 내부에 구현되어있는 코드들이 실행 되는 것이죠.

이런 특성 때문에 같은 Observable을 서로 다른 구독자가 구독을 하게 되면 Observable.create 클로저 안에 구현되어있는 코드가 구독한 횟수만큼 호출되는 것이죠!