목록RxSwift (8)
study record
Subject Subject는 Observable이자 Observer 두 역할 모두를 수행한다. next 이벤트를 통해 값을 전달받고, 이벤트를 수신할 때마다 subscriber를 통해 방출한다. Subject 종류 PublishSubject : 빈 상태로 시작하여 새로운 값만을 subscriber에 방출 BehaviorSubject : 하나의 초기값을 가진 상태로 시작하여, 새로운 subscriber에게 초기값 또는 최신값을 방출 ReplaySubject : 버퍼를 두고 초기화하며, 버퍼 사이즈 만큼의 값들을 유지하면서 새로운 subscriber에게 방출 Variable : BehaviorSubject를 래핑하고, 현재의 값을 상태로 보존. 가장 최신/초기 값만을 새로운 subscriber에게 방출 P..
Reactive Programming Reactive Programming은 데이터의 흐름과 변화의 전파와 관련된 선언적 프로그래밍 패러다임이다. 먼저 데이터 흐름을 정의하고 데이터의 변화를 관찰하다 데이터가 변화했을 때 연관되는 함수나 수식을 업데이트하는 방식이다. 이렇게 비동기적 데이터 흐름을 다루는 프로그래밍으로, 데이터의 이벤트나 UI 이벤트가 많이 발생하는 경우에 장점을 가진다. 또한 Reactive Programming은 비동기적 데이터 흐름과 전달에 관한 프로그래밍 패러다임이라고 표현할 수 있다. 이러한 Reactive Programming의 핵심은 모든 것을 비동기적 데이터의 Stream으로 간주하고, 다양한 방법으로 비동기 이벤트를 처리한다. 프로그래머가 직접 절차를 명시하여 처리하는 명..
Subject Subject란 Observable이자 Observer의 성격을 지니고 있다. Subject는 동적으로 값을 발행할 수 있다. Subject는 구독하고 있는 여러 Observer들에게 값을 발행할 수 있다. Subject는 Observable을 상속하고 있다. 이는 Subject가 Observable이자 Observer라는 것을 의미한다. Observer(관찰자)의 성격을 지니고 있기 때문에 Observable을 구독할 수 있다. Observable이기 때문에 이벤트를 발행할 수도 있다. * view의 유저 인터렉션을 viewModel의 Subject가 구독하고, 구독을 통해 발행된 값을 바탕으로 viewModel에서 비즈니스 로직을 거쳐 가공된 데이터를 View가 구독함으로써 로직을 구성..
Observable : 특정 형태의 데이터를 전달하는 이벤트를 비동기적으로 생성할 수 있는 객체. Observable은 Hot Observable, Cold Observable 두가지 종류로 구분될 수 있다. Hot Observable과 Cold Observable을 구분하는 기준은 다음과 같다. 이벤트 발생이 시작되는 시점(구독시 vs 구독과 관계 없이) 구독했을 때 이벤트 시퀀스를 처음부터 관찰할 수 있는가(있다 vs 없다) Hot Observable Hot Observable은 구독 여부에 상관 없이 이벤트를 발생시키기 때문에 일단 동작하기 시작하면 리소스를 사용하게 된다. 따라서 구독했을 때 이벤트 시퀀스를 처음부터 관찰하지 못할 수 있다. 구독하는 시점에 따라서 전달받는 요소가 다르다. 또한 이..