RxSwift에서 Observable vs Observer 차이
RxSwift에서 Observable(옵저버블)과 Observer(옵저버)는 개념적으로 서로 연결된 존재지만 역할이 다르다.
맨날 사용하는건데 용어적인 개념을 이제야 다시 명확하게 하기위해 작성 ㅠㅠ…
📦 Observable (옵저버블)
데이터를 방출하는 객체.
이벤트 스트림을 만들고, 구독자가 생기면 데이터를 넣어줌
🔹 역할
onNext,onCompleted,onError같은 이벤트를 전달- 구독 시점에 따라 데이터 흐름을 조절 (콜드/핫)
🔹 예시
1 | let observable = Observable.of("A", "B", "C") |
👂 Observer (옵저버)
데이터를 구독하고 처리하는 객체.
Observable에서 전달되는 이벤트를 받아 반응
🔹 역할
onNext: 새 데이터가 도착했을 때onError: 에러 발생 시onCompleted: 완료되었을 때
🔹 예시
1 | observable.subscribe( |
✅ Observable vs Observer 비교
| 항목 | Observable (옵저버블) | Observer (옵저버) |
|---|---|---|
| 역할 | 이벤트를 발행함 | 이벤트에 반응함 |
| 주도권 | 데이터를 내보내는 쪽 | 데이터를 받아서 처리하는 쪽 |
| 생성 방식 | Observable.of, create() 등 |
subscribe(...)로 구현됨 |
| 예시 비유 | 유튜브 채널 | 유튜브 시청자 |