iOS
![[RxSwift] Subject - ReplaySubject](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVxcQL%2FbtrL6Q5x3W1%2FpakIkKHSo59gk3J3gqZTY1%2Fimg.png)
[RxSwift] Subject - ReplaySubject
let replaySubject = ReplaySubject.create(bufferSize: 3) // 3개의 마지막 이벤트를 저장 ReplaySubject는 마지막으로 전달된 n개의 이벤트를 버퍼에 저장한다. [1,2,3,4,5,6,7,8,10].forEach { replaySubject.onNext($0) } replaySubject.subscribe { print("ReplaySubject 1", $0) } .disposed(by: disposeBag) // Output ReplaySubject 1 next(8) ReplaySubject 1 next(9) ReplaySubject 1 next(10) 마지막 3개의 이벤트를 저장했기 때문에 Subscriber가 추가되자마자 10개 중 마지막 3개의 ..
![[RxSwift] Subject - BehaviorSubject](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuALQp%2FbtrL80s16fb%2FeKkKuwl8j23bZrgoALtME1%2Fimg.png)
[RxSwift] Subject - BehaviorSubject
PublishSubject와의 차이점 let publishSubject = PublishSubject() publishSubject.subscribe { print("PublishSubject >>", $0) } .disposed(by: disposeBag) 위 코드는 Observer가 Subscribe한 이후 전달되는 이벤트가 없기 때문에 print가 호출되지 않는다. BehaviorSubject는 구독 시점에 가장 최근에 배출된 항목을 배출한다. let behaviorSubject = BehaviorSubject(value: 0) behaviorSubject.subscribe { print("BehaviorSubject 1", $0) } .disposed(by: disposeBag) // Output..
![[RxSwift] Subject - PublishSubject](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMJMuW%2FbtrL4mqCwhc%2FshI8UGO3C4mWtgcYfQ5dsk%2Fimg.png)
[RxSwift] Subject - PublishSubject
Observable은 다른 Observable를 Subscribe하지 못하고, Observer는 다른 Observer로 이벤트를 전달하지 못한다. Subject는 다른 Observable로 부터 이벤트를 받아서 Subscriber로 전달할 수 있다. Observable인 동시에 Observer인 셈이다. Subject의 종류 PublishSubject: Subject로 전달되는 새로운 이벤트를 Subscriber로 전달한다. BehaviorSubject: 생성시점에 시작 이벤트를 지정하고, Subject로 전달되는 이벤트 중에 가장 마지막에 전달된 최신 이벤트를 저장해두었다가 새로운 Subject에게 최신 이벤트를 전달한다. ReplaySubject: 하나 이상의 최신 이벤트를 버퍼에 저장한다. Obse..
![[RxSwift] Observable, Observer, Operators](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZOhwq%2FbtrLwzWoh5E%2FaJ26b4NEypZWg8DG3ORlR0%2Fimg.png)
[RxSwift] Observable, Observer, Operators
ReactiveX의 Observable 페이지를 정리해보았다! 이미 한국어 페이지를 지원한다는 것이 놀라웠다. 대단한 사람들 Observable ReactiveX는 Observable Streams을 사용하는 비동기 프로그래밍(Asynchronous Programming)을 위한 API다. Observable & Observer Observer 패턴, Iterator 패턴, Functional Programming의 개념이 포함되어 있다. 이번 포스트에서 알아야하는 개념들이 있다. Observer(관찰자): Subscriber(구독자)라고도 한다. Observable을 Subscribe(구독)한다. Observable: Observer가 Subscribe하는 대상으로, 하나 또는 연속된 Item/Even..
[Swift] HOF(Higher Order Function) (2)
1편에 이어 [Swift] HOF(Higher Order Function) (1) Swift 기본 고차함수(HOF; Higher Order Function) 에 대해알아보고 간단히 구현해보자. 고차함수란, 함수를 인자로 전달받거나 함수를 결과로 반환하는 함수를 의미한다. 보통 Swift에서 고차함수라고 한 littlemoom.tistory.com 2편에서는 contains, min, max도 사실 고차함수의 형태였다는 사실과 flatMap, compactMap, allSatisfy, partition 에 대해 알아보자. contains func contains(_ element: Self.Element) -> Bool Sequence안에 Element가 존재하면 true를 반환한다. 하지만 해당 함수는 ..