[iOS] subscribe, bind, driver 차이점

z-wook·2023년 8월 28일
0
post-thumbnail

Observable 이란?

Observable은 데이터의 변화를 나타내는 스트림이며, 이 스트림을 관찰하고 구독함으로써 데이터의 변화를 감지하고 이에 대응할 수 있습니다.


개념

  • Subscribe
    1. Observable이 내보내는 데이터 스트림을 관찰하고 처리하는 작업을 의미한다.
    2. subscribe 메서드를 사용하여 Observable을 구독하고, Observable이 이벤트를 내보낼 때마다 정의한 클로저를 실행한다.

  • Bind
    1. Observable의 값을 다른 요소에 연결(바인딩)하는 작업을 의미한다.
    2. 메인 스레드에서 동작하기 때문에 바인딩을 통해 Observable의 데이터 변화를 UI나 다른 데이터 요소에 반영할 수 있다.

  • Driver
    1. 주로 UI에 사용되며, 메인 스레드에서 실행되고 메인 스레드로 전환되어 결과를 전달하는 등의 편의 기능을 제공한다.
    2. 메인 스레드에서 UI 업데이트에 관련된 Observable을 처리하는데 유용하다.


차이점

  • subscribe
    에러 처리 가능 / 스레드 지정 가능

  • bind
    에러 처리 불가 / 사실상 onNext만 구현한 subscribe

  • driver
    에러 처리 불가(onErrorJustReturn 정도) / 무조건 메인 스레드


사용 예시

  • subscribe
    일반적 상황, 즉 에러 처리, 스레드를 지정해야 하는 경우 등 다양한 상황에서 사용한다.

  • bind
    에러 처리를 따로 안 하므로 주로 error가 없는 button.rx.tap 같은 UX subscribe 용으로 많이 사용한다.

  • driver
    메인 스레드에서 실행된다는 보장이 있으므로 주로 백그라운드 작업 후 UI에 반영이 되어야 하는 작업에서 사용.

profile
🍎 iOS Developer

0개의 댓글