[Swift] RxSwift를 통한 비동기 프로그래밍(1)

Charlie·2022년 9월 4일
0
post-custom-banner

RxSwift는 비동기 프로그래밍을 쉽게 할 수 있도록 도와주는 라이브러리이다.

비동기 프로그래밍을 위한 기존 방법들

  • Notification Center : 디바이스 관련 이벤트가 발생할 때마다 코드를 실행
  • Delegate Pattern : 임의의 시간에 다른 클래스 등에서 실행될 메소드를 정의하지만, 언제 코드가 실행되는지는 알 수 없음
  • Grand Central Dispatch
  • Closure : 클래스 간에 전달할 수 있는 코드

RxSwift의 3가지 구성 요소

Observable

  • 이벤트 시퀀스를 비동기적으로 생성하는 기능
  • Observable을 통해 값을 방출한다.
  • 하나 이상의 Observer가 실시간으로 이벤트에 반응하여 데이터를 처리한다.

Observable은 세가지 이벤트만 방출할 수 있다.

  • next : 최신 값을 방출하는 이벤트
  • error : Observable이 값을 방출하다가 에러가 발생하면 error를 방출하고 종료시키는 이벤트
  • complete : 성공적으로 이벤트 시퀀스를 종료시키는 이벤트. Observable이 더이상 값을 방출하지 않는다.

Operator

  • Observable 클래스의 복잡한 논리를 구현하기 위한 많은 메소드들
  • Observable이 방출하는 비동기 입력을 받아 Operator와 결합하여 출력만 생성하기 때문에 쉽게 결합이 가능

Scheduler

  • Dispatch Queue와 같은 기능을 하지만 더 좋음(..?)
  • 여러 Scheduler가 이미 정의되어 있어서 개발자가 자신의 Scehduler를 생성하는 일은 드물다고 한다.

Reference

KangHoon님 블로그

profile
Hello
post-custom-banner

0개의 댓글