반응형 프로그래밍

JG Ahn·2024년 11월 22일

swift 심화

목록 보기
14/18
post-thumbnail

반응형 프로그래밍이란?

프로그래밍의 패러다임으로 이벤트가 발생하는 곳을 구독하면, 이벤트 발생시 해당 이벤트를 처리하는 프로그래밍 방법입니다. 비동기 작업을 간결하게 처리하고, 상태 변화에 반응할 수 있음. (trigger와 비슷하다!)

RxSwift

  • RxSwift(Reactive eXtension Swift)
    • 마이크로소프트에서 개발한 비동기 이벤트의 핸들링을 도와주는 오픈소스 라이브러리
  • 애플에서도 Combine을 제공하지만 RxSwift 와 Combine의 개념과 사용방법은 비슷
  • 데이터스트림을 구독(관찰)하고 있다가 이벤트가 방출되면 작업을 진행.
  • Observer, Observable, Operator로 구성

Observable

데이터 스트림과 이벤트 방출을 해주는 역할

  • on Next : 아이템 방출
  • onCompleted : complete되면 방출
  • onError : 에러 발생시 방출
  • onDisposed : 옵저버 처분시 방출

Observer (구독자, 관찰자)

데이터 스트림을 관찰하고 있다가 이벤트 방출시 처리

Operator

Observable 상에서 동작하고 Observable을 리턴

Hot Observable vs Cold Observable

Hot Observable

옵저버가 옵저버블을 구독한 순간부터 default 이벤트 방출

Cold Observable

구독 후 이벤트 방출시 이벤트를 받음(default 이벤트 없음)

Subject(Observable + Observer)

말그대로 옵저버블 역할을 하는 옵저버

Behavior Subject

  • Hot Observable
  • 구독을 시작하면 값을 받음
  • default 값 제공 필수

Publish Subject

  • Cold Observable
  • 이벤트가 방출되면 값 제공
  • default 값 제공 필수 ❌

0개의 댓글