안녕하세요!! Donotinto입니다 :)
오늘은 RxSwift에 대해 대략적인 개념이라도 정리해보려고 합니다.
바로 시작해보겠습니다!

RxSwift는 Reactive Extension Swift의 약자로,
Observalbe 인터페이스를 통해서 표현된 계산(프로그래밍)의 일반적인 추상화로, 값과 이벤트들을 Observable(관측가능한) 흐름을 통해 송출하고 구독할 수 있게 해준다고 합니다...
첫 문장부터 어질어질한데,
지금은 Observable(관측 가능한)타입을 통해 비동기 처리를 도와주는 인터페이스...정도로 기억하면 될 것 같습니다.
RxSwift에 있어 핵심적인 요소인 Observable은 말 그대로 관측 가능한 타입입니다.

위 그림처럼 Observable은 시퀀스를 생성하고 이벤트를 계속 방출합니다.
해당 Observable을 구독한 Observer는 이벤트가 방출되면, 이를 감지하여 UI를 변경한다든지 값을 변경한다든지 이벤트를 처리하게 됩니다.
Observable은 Create 연산자로 생성되지만, 보통은 3가지 Type으로 생성합니다.
// Operator로 생성 후 이벤트 자체를 인자로 받는 모습
let justObservable = Observable<Int>.just(1)
let ofObservable = Observable<[Int]>.of([1,2,3], [2,3,4], [3,4,5])
let fromObservable = Observable<Int>.from([1,2,3])
justObservable.subscribe { event in
print("just = \(event)")
}.disposed(by: disposeBag)
ofObservable.subscribe { event in
print("of = \(event)")
}.disposed(by: disposeBag)
fromObservable.subscribe { event in
print("from = \(event)")
}.disposed(by: disposeBag)
/*
just = next(1)
just = completed
of = next([1, 2, 3])
of = next([2, 3, 4])
of = next([3, 4, 5])
of = completed
from = next(1)
from = next(2)
from = next(3)
from = completed
*/
Observable은 다음 3가지 메소드를 통해 이벤트를 전달하거나 에러를 처리할 수 있습니다.
error와 completed는 시퀀스를 종료시키고, 더 이상 이벤트가 발생하지 않습니다!
제가 쓰면서도 뭔지 이해가 한번에 되지는 않아서 많이 써보고 체득을 해야 할 것 같은 느낌입니다...
다음편에서는 Subject에 대해서 이어서 작성해보도록 하겠습니다!