[RxSwift] Signal, emit
Signal과 emit
이번에는 Signal과 Emit에 대해서 알아보자.
다른 사람의 Rx 코드를 리뷰하고 있는데 Signal과 emit이 있는거임
찾아보니까 Driver와 비슷했고, Signal은
잘 사용하지 않았지만, 코드를 제대로 이해하려면 정리가 필요할 것 같다고 생각해서 정리 ㄱㄱ
✅ Signal vs Driver
🟠 공통점 - error를 방출하지 않는다. - 메인 스레드에서 작동한다.
🟠 차이점 - 그림에서 보다시피 Driver는 sub할때 replay를 통해 emit이 일어나지만 Signal은 sub할때 replay를 하지 않는다.
✅ 그렇다면 Signal은 주로 어떨때 사용할까?
Signal은 replay되면 문제가 있는 스트림에 사용하면 되겠다.
여러 코드를 살펴보는데 주로 viewModel -> View로 가는 작업 즉, UI 관련한 것들에 Signal이 보였다.
내 생각에는 Driver를 사용하는게 더 편리하지 않을까 싶다.
✅ emit은 Driver를 사용했을때 drive라고 생각
✅ 내 생각.
Signal과 Driver가 주로 비교되는 것 같아서 어떤걸 사용해야 하는지 생각을 해봤는데, 적재적소에 더 알맞는 것을 사용하는게 물론 베스트겠지만, 내가 짠 코드가 다른 사람이 보았을 때, Signal과 Driver가 섞여 있으면 통일감(?)이 떨어져서 불완전하게 보이는 요소로 작동하지 않을까도 생각이 들었다.
아무튼 다른 생각이 있다면 댓글로 남겨주세요.
(참고)
https://medium.com/@hongseongho/%EB%B2%88%EC%97%AD-signal-and-relay-in-rxcocoa-4-619d5194dcbd