데이터 생성자와 데이터 소비자간을 연결해줌

== Observable 과 Observer를 연결해주는 역할.

Binder 는 UI바인딩에 사용되는 특별한 옵저버임(데이터 소비자).

옵저버 이기 때문에 구독자를 추가할 수없음.

Next, Completed 만 받고 Main Thread에서 작업이 실행되는 것을 보장함.

스크린샷 2022-08-03 오후 5.53.45.png

textFeild에 입력받은 값을 UIlabel에 표시하는 예제

1. Binding 사용하지 않음

textField.rx.text
            .subscribe(onNext:{ [weak self] value in
                self?.label.text = value
            })
            .disposed(by: disposeBag)

textField.rx.test라는 옵저버블에서 방출되는 값을 구독해 self.label.text 필드의 값을 바꿈. 해당 코드는 UI 수정 작업이 Main Thread에서 처리한다는 보장이 없다.

2. Binding 사용

        textField.rx.text
            .bind(to:label.rx.text)
            .disposed(by:disposeBag)

아래의 코드는 TextField.rx.text의 옵저버블에서 전될된 값을 bind라는 함수를 사용해 Label.rx.text라는 옵저버에게 전달해주는 기능을 함. Bind를 사용하면 해당 작업이 메인쓰레드에서 처리됨을 보장함.