Observer은 Observable을 구독합니다. 여기서 구독이라는 말은 Observable이 방출한 이벤트(item)를 받는것을 의미합니다. Observable을 구독하는 방법은 .subscribe라는 메서드를 사용합니다. subscribe의 원형을 살펴보면 public func subscribe( onNext: ((Element) -> Void)? = nil, onError: ((Swift.Error) -> Void)? = nil, onCompleted: (() -> Void)? = nil, onDisposed: (() -> Void)? = nil ) -> Disposable 3개의 파라미터가 존재합니다. 3개의 파라미터 모두 default 값이 nil 값입니다. onNext(): 항목을 받았을때 ..
기업에서 가장 공통적으로 요구하는 기술 스택인 비동기 처리를 위한 프레임워크인 RxSwift를 배워보도록 하겠습니다. RxSwift RxSwift = Reactive Extension Swift의 약자로 swift를 반응형 프로그래밍 하기 위한 라이브러리라고 할 수 있습니다. RxSwift를 사용하는 이유 1. 비동기 실행 코드를 이해하기 힘듬(애플의 API에서 제공하는 delegate패턴을 그대로 사용하고 구현코드를 확인할 수 없어 데이터의 흐름 파악에 어려움이 있다.) 2. RxSwift와 MVVM와 밀접한 연관 반응형 프로그래밍 반응형 프로그래밍이란, 데이터의 흐름 및 변경사항을 전파(emit?)하는데 중점을 둔 프로그래밍 패러다임입니다. 이 패러다임을 사용할 경우, 주변환경/ 데이터에 변화가 생길..
import UIKit import RxSwift import RxCocoa class ViewController: UIViewController { @IBOutlet weak var numberLabel: UILabel! @IBOutlet weak var increaseButton: UIButton! private let disposeBag = DisposeBag() private var number = BehaviorRelay(value: 0) override func viewDidLoad() { super.viewDidLoad() // increaseButton의 탭 이벤트를 감지하여 number를 1씩 증가 increaseButton.rx.tap .subscribe(onNext: { [weak s..
Subject는 Observable과 Observer 기능이 들다 가능한 컴포넌트입니다. Subject는 여러 Subscriber들에게 이벤트 전달이 가능합니다. BehaviorSubject BehaviorSubject의 Observable을 생성할때 초기 이벤트(item)를 가지고 있습니다. Observer가 BehaviorSubject를 구독할때, 가장 최근에 Observable에 의해 방출되었던 이벤트(item)을 방출하면서 동작합니다. 그리고 계속해서 차후에 Observable가 전달하는 소스들을 방출합니다. 위에 네모 상자에 있는 것이 Behaviordml Observable의 시퀀스입니다. 처음 Observable이 생성과 동시에 분홍색 item을 초기값을 가집니다. 이후로 빨간색, 초록색, ..
Observer은 Observable을 구독합니다. 여기서 구독이라는 말은 Observable이 방출한 이벤트(item)를 받는것을 의미합니다. Observable을 구독하는 방법은 .subscribe라는 메서드를 사용합니다. subscribe의 원형을 살펴보면 public func subscribe( onNext: ((Element) -> Void)? = nil, onError: ((Swift.Error) -> Void)? = nil, onCompleted: (() -> Void)? = nil, onDisposed: (() -> Void)? = nil ) -> Disposable 3개의 파라미터가 존재합니다. 3개의 파라미터 모두 default 값이 nil 값입니다. onNext(): 항목을 받았을때 ..