- Observable
- Operator
- Scheduler
Observable
- Observable은 시퀀스의 타입이다.- 스트림과 비슷한 개념이지만 시퀀스라고 이름이 붙어 있다.
- 뜻 그대로 옵저버 패턴에 있어서 옵저버가 가능한 시퀀스를 만들어내는 타입이다.
이 시퀀스에는 크게 3가지의 이벤트가 있다.
- onNext: 시퀀스에 아이템을 흘려보낸다.
- onError: 시퀀스에 에러가 발생했으므로 에러를 넘기고 종료한다.
- onComplete: 시퀀스를 종료한다.
하나의 시퀀스가 종료되면 다시 생성하기 전까지 아이템이 흘러가지 않는다.
Observable(시퀀스)를 선언하고 subscribe(구독)을 하므로 rxSwift를 사용하게 된다. 그리고 마지막에 dispose(처리)하므로 시퀀스가 메모리에서 삭제된다.
간단한 예를들어보면
1
2
3
4
|
Observable<Int>.just(1)
.subscribe { event in
print(event)
}.dispose()
| cs |
위와 같은 코드가 있다고 할때 .just(1)이 observable을 생성하는 operator가 된다. 그리고 1을 만드는 시퀀스를 구독하여 print하고 그대로 dispose()하고 있는 간단 심플한 코드이다.
Operator
rxSwift를 쓰는 이유는 하나의 이벤트를 기준으로 여러가지 기능을 하기 위해서다. 따라서 여러가지 이벤트를 하나의 이벤트로 합치거나, 시간을 조절하여 이벤트를 받거나 발생시킬 필요가 있다. 그 때 쓰는 것이 Operator이다.그리고 이 operator가 함수형 프로그래밍의 꽃이 된다.
예를들면, map(), merge(), zip(), concat() 등이 대표적인 Operator이다.
map, filter, reduce는 일반적인 배열에서의 사용법과 같다.
Scheduler
시퀀스의 이벤트를 어떤 큐에서 어떤 타이밍에 발생시킬가에 대한 문제.
댓글 없음:
댓글 쓰기