
Observable
- Observer가 구독하는 대상
- Observable이 배출하는 하나 또는 연속된 항목을 Observer가 반응
- → 이러한 패턴 덕분에 동시성 연산이 가능
- Observable이 객체를 배출할 때까지 기다릴 필요 없이, 배출 시점을 관찰하는 관찰자를 두고 관찰자를 통해 배출 알림을 받으면 되기 때문

Observable을 생성하는 방법 (create, just, of, from)
Create
Create 연산자를 사용하면 직접 Observable을 만들 수 있습니다. 이 연산자에는 Observser를 매개변수로 받는 클로저를 전달해야 합니다.
클로저 안에서는 실제 Observable처럼 동작하도록, observer의 onNext, onCompleted, onError 메서드를 적절히 호출해야 합니다.
올바르게 구성된 Observable은 Observer의 onCompleted 또는 onError 중 하나를 정확히 한 번만 호출해야 하며, 그 이후에는 Observer의 어떤 메서드도 더 이상 호출해서는 안 됩니다.


함수의 원형을 살펴보면, “Observer를 매개변수로 받고, Disposable을 반환하는 클로저”를 매개변수로 받음
let observable = Observable<String>.create { observer in
observer.onNext("first")
observer.onNext("second")
observer.onCompleted()
return Disposables.create()
}
위처럼 create 매서드 다음 Trailing Closure를 이용해서 매개변수로 받은 observer를 통해 언제 onNext를 통해 이벤트를 방출할 것인지, 혹은 언제 onCompleted or onError를 통해 종료할 것인지를 직접 처음부터 끝까지 직접 조절할 수 있습니다.
Just
특정한 아이템(1개)를 방출하는 Observable을 생성하는 메서드

Create 메서드를 통해서도 동일하게 동작하지만, 단지 1개의 아이템만을 방출할 때는 Just를 사용해서 간략화 할 수있음
Just의 경우 단 하나만을 방출하는 것을 전제로 하기 때문에, 따로 onCompleted 를 호출하지 않아도 자동으로 호출된 후 dispose 됩니다.


let observable = Observable.just("first")
// or
let observable = Observable<[String]>.just(["first", "second"])
Of

of 메서드는 가변 매개변수를 입력하여, 매개변수를 각각 방출합니다.
let observable = Observable.of("fisrt", "second", "third")
From

From은 매개변수로 하나의 배열을 받으며, 배열의 요소들을 순서대로 방출하는 Observable Sequence를 생성합니다.
let observable = Observable.from(["frist", "second", "third"])'Swift' 카테고리의 다른 글
| [ReactorKit] Reactor 살펴보기 (0) | 2026.02.04 |
|---|---|
| [ReactorKit] ReactorKit 기본 개념 살펴보기 (0) | 2026.01.20 |
| RxSwift - Observable, RxCocoa, Driver (0) | 2026.01.14 |
| ReactiveX Introduction 번역 (0) | 2025.10.01 |
| [Swift] iOS 앱의 라이프 사이클 관리 (0) | 2025.03.18 |