RxSwift 개념

Updated:

RxSwift 의 용도는 비동기로 생기는 결과 값을 completion 으로 closure 형태로 전달하는것이 아니라, return 값으로 전달하기 위해서 만들어진 라이브러리 입니다

🔷 1. RXSwift 란?

  • RXSwift 는 기본적으로 비동기적으로 움직이는 Apple 의 API 들과 수시로 상태가 변하는 환경에서 보다 직관적이고 효율적인 코드를 작성할 수 있게 도와 줍니다

🔷 2. RXSwift 구성 요소

🔶 Observable

Every Observable instance is just a sequence

Observable 은 Swift 에서 제공하는 Sequence 와 비슷합니다. 말 그대로 각각의 요소들을 순회 할 수 있는 타입을 의미 합니다

  • RX 코드를 기반

  • T 형태의 데이터 snapshot 을 ‘전달’ 할 수 있는 일련의 이벤트를 비동기적으로 생성하는 기능

  • 하나 이상의 observers 가 실시간으로 어떤 이벤트에 반응하는 지 보는것

  • 세 사지 유현의 이벤트만 방출

enum Event<Element> {
  case next(Element) // next element of a sequence - Element 를 전달하는 역활
  case error(Swift.Error) // sequence failed with error - Observable 이 error 를 발생시켜서 추가적으로 event 를 생성하지 않을 것을 의미함 에러와 함꼐 Observable 종료
  case completed // sequence terminated successfully - Event 를 종료 시키는 event 임
}

🔶 Operator

Observable 의 이벤트들을 입력 받아서, 결과로 출력해 내는 연산자 operator 를 말합니다. 다양한 형태로 값을 걸러내거나, 변환하거나 자기들끼리 합치는 연산자들이 있습니다

Observable 에서 보다 복잡한 논리를 구현하기 위해서 함께 구성 되는 많은 method 가 포함되게 됩니다. 이 method 들은 각자가 독립적이고, 자기들 끼리 여러가지 method 들이 조합이 되어서 하나의 어떠한 구문을 구성하게 되는데 이것을 Operator (연산자) 라고 함

이러한 Operator 들은 비동기 입력을 받아서, 출력만 생성하기 때문에, 마치 퍼즐 조각처럼 자기들 끼리 결합하고 나눠 질 수 있습니다.

🔶 Scheduler

RX 의 dispatchQueue 라고 생각하면 됩니다

image


Reference

FastCampus - https://www.youtube.com/watch?v=iHKBNYMWd5I&list=PL03rJBlpwTaBrhux_C8RmtWDI_kZSLvdQ

RxSwift Github - https://github.com/ReactiveX/RxSwift

Categories:

Updated:

Leave a comment