TIL(Today I Learned)

9월 30일(목)

학습내용

  • RxSwift
    • Subject vs Relay
      • Subject는 Observer이면서 Observable로서 역할을 한다. 즉, 외부에서 발생된 값을 Observer로서 subscribe하고 있다가, Subject를 subscribe하는 다른 Observer에게 값을 전달한다.
      • Relay는 Subject와 동일하지만, Complete이 없고 Error를 발생시키지 않는다는 차이점이 있다.
      • Relay는 UI와 관련된 값을 다룰 때 사용한다. 왜냐하면 Subject는 Complete이나 Error로 인해 스트림이 종료되어 UI 갱신되지 않는 문제가 생길 수 있기 때문이다. Relay는 Complete이 없고 Error를 발생시키지 않기에 스트림이 종료되지 않아서, UI 갱신에 관련될 때 Subject 대신에 사용한다.
    • Hot Observable vs Cold Observable
      • Hot Observable은 생성되자마자 값들을 발생시킨다. 따라서 중간에 subscribe를 하면 subscribe 이전 시점에 발생된 값을 알 수 없다.
      • Cold Observable은 구독이 시작되면 값들을 발생시킨다. 중간에 subscribe를 하더라도 subscribe 이전에 발생된 최초 값들부터 받게 된다.
    • Single
      • Observable과 유사하지만, Observable은 연속적인 값을 발생시키는 것에 비해 Single은 한개의 값을 발생시키거나 에러를 발생.

참고