ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • RxSwift - 1.Reactive Programming, RxSwift 개념
    RxSwift 2023. 2. 27. 22:08

    1. Reactive Programming

    • 비동기 데이터 스트림을 이용하여 프로그래밍 하는 것 입니다.
    • 비동기 처리를 스트림을 만들고 해당 스트림에 데이터를 흘려보내서 데이터를 처리하는 방식입니다.

     

    1.1 Stream

    • 스트림은 만들고, 조합하고, 필터링할 수 있습니다.
    • 스트림은 다른 스트림의 input이 될 수 있습니다.
    • 복수의 스트림들도 다른 스트림의 input이 될 수 있습니다.

     

    2. Reactive Extension(RxSwift, RxCocoa)

    2.1 RxSwift란?

    - RxSwift는 관찰이 가능한 형태와 함수형태의 연사자를 이용해서 비동기 이벤트 처리를 위한 코드를 제공해주는 Library 입니다.

    2.2 RxSwift의 3요소

    1. Observable
      Observable은 observable, observable sequence, sequence라고도 불립니다. Observable은 이벤트를 전달하며, Observer는 이를 관찰하고 있다가 전달되는 이벤트를 처리합니다. Observable을 관찰하는 것을 Subscribe(구독)한다고 표현합니다. 그래서 Observer를 Subscriber라고 표현하기도 합니다.
      • Next Event: 최신 데이터 값을 전달하는 이벤트입니다. Observer는 해당 이벤트를 통해 값을 수신하며, Complete Event가 발생하기 전까지 계속 발생시킬 수 있습니다.
      • Complete Event: Observable을 성공적으로 종료시키는 이벤트입니다.
      • Error Event: Observable이 오류로 인해 종료되는 이벤트입니다.
    2. Operator
      Operator는 Observable을 생성하거나, 필터링 하거나, 여러 Observable을 합치는 메소드들 입니다. 이러한 Operator는 Observable을 리턴합니다.
      • 특징
        1. 대부분의 연산자는 Observable 상에서 동작하며 새로운 Observable을 리턴합니다.
        2. 연산자는 체이닝을 이용할 수 있지만, 순서에 주의해서 사용해야 합니다.
    3. Scheduler
      기존에 사용하던 DispatchQueue와 동일한 기능을 수행합니다. 쉽게 사용할 수 있습니다.

    2.3 RxCocoa란?

    - UIKit및 Cocoa개발을 지원하는 클래스를 보유하고 있는 라이브러리입니다. 다양한 UI요소에 Reactive Extenstions기능을 추가하여 제공합니다.

     

    피드백 환영합니다!!

    참조

    RxSwift Reactive Programming with Swift thirdnbsped by raywenderlich team's book

    https://ios-development.tistory.com/95

    https://gist.github.com/staltz/868e7e9bc2a7b8c1f754

    https://gist.github.com/casamia918/93b8db69beb9ee06b92a96b2a234d48e 

    https://velog.io/@phs880623/RxSwift-Operator%EB%9E%80

    https://velog.io/@phs880623/RxSwift-Observable%EC%9D%B4%EB%9E%80

    'RxSwift' 카테고리의 다른 글

    RxSwift - 4.Hot Observable, Cold Observable  (0) 2023.03.03
    RxSwift - 3.Subjects  (0) 2023.03.02
    RxSwift - 2.Observable  (0) 2023.02.28
    Functional Programming  (0) 2023.02.24
Designed by Tistory.