Swift 는 함수형프로그래밍을 지향 하는 언어이다.
RxSwift 는 Swift 언어를 반응형프로그래밍으로 개발할 수 있게 도와주는 도구라고 생각하고 학습을 했다.
반응형프로그래밍으로 개발하도록 도와주는 오퍼레이터들이 있지만 일단 RxSwift 의 큰 내용을 먼저 파악해보자.
Observable = (이벤트 or 데이터)전달만 하는 녀석.
Observer = 전달 받은 것을 처리만 하는 녀석.
Observer 는 이벤트를 전달 받기 위해 Observable 에 구독을 한다.
구독을 하면 onNext, onCompleted, onError 같은 녀석들로 이벤트를 처리할 수 있다.
Youtube 를 사용하는 사람이라면 구독을 해본적이 있을 것이다. 구독을 하게되면 구독한 유튜버의 영상이 업로드 되면 알림을 받게되는데 비슷한 시스템이라고 생각하면 이해가 잘되었다.
유튜브와 합쳐서 생각해보면 Observable 이 영상을 올리게 되면 구독을 한 Observer 는 영상이 업로드 되었다는 알림을 받는다. 여기서 영상을 이벤트라고 생각 해주면 RxSwift 의 기초 이벤트 전달하는 방법이 된다.
지금까지는 이벤트의 전달 만 다루는 녀석, 이벤트의 처리 만을 다루는 녀석에 대해서만 보았는데 전달도 하고 처리도 해주는 Subject 도 있다. Subject 는 Observable + Observer 로 생각해주면 된다.
구독을 할 때 Subscribe 대신 Bind, Drive 같은 애들도 있고 이벤트를 처리 하는 메서드도 onNext, onCompleted, onError 말고 Accept 도 있다. Subject 도 BehaviorSubject, PublishSubject 등 여러개가 있다.
위의 내용들은 현재까지 머릿속에 정리된 Observable 이 이벤트를 전달한 것을 Observer 가 처리할 수 있는데 전달을 받기 위해서는 구독을 해야한다. 이렇게 정리한 내용을 바탕으로 지식을 확장해 나갈 예정이다.