Observable을 만들어주는 생성 operator인 of와 from of vs from 배열을 넘겨주면 of 는 Observable을 만들고 from은 배열의 각각 원소들을 Observable로 만든다 let observableByOf = Observable.of([1,2,3]) let observableByFrom = Observable.from([1,2,3]) observableByOf의 타입은 Observable observableByFrom의 타입은 Observable 이다 Observable.of([1,2,3]).subscribe(onNext: { array in print(array) }).disposed(by: disposeBag) Observable.from([1,2,3]).subscr..
Map vs FlatMap 1) Map get value from stream and return another value of whatever type, result is Observable. 2) FlatMap get value from stream and return an Observable of whatever type. Map map은 이벤트를 바꾼다. E Type이벤트를 R Type이벤트로 바꾼다 public func map(_ transform: @escaping (Self.E) throws -> R) -> RxSwift.Observable FlatMap flatMap은 이벤트를 다른 observable로 바꾼다 public func flatMap(_ selector: @escaping (E..
시나리오 import RxSwift import RxCocoa let disposeBag = DisposeBag() struct Student { var score: BehaviorRelay } let john = Student(score: BehaviorRelay(value: 75)) let mary = Student(score: BehaviorRelay(value: 95)) let student = PublishSubject() score을 가지고 있는 Student 타입을 관찰하기 위해 student라는 subject를 만들었다 [ 1 ] FlatMap student.flatMap { $0.score } .subscribe(onNext: { print($0) }).disposed(by: dispos..
[ 1 ] Unit Testing 이란 implement the feature and write the test…. & implement the feature and write the test…. & implement the feature and write the test…. ..... feature을 구현하고 test를 작성하고… 를 계속 반복하는 것이 유닛 테스팅이다 [ 2 ] 간단한 예제 - Calculator class Calculator { func add(_ a: Int, _ b: Int) -> Int { return a + b } func subtract(_ a: Int, _ b: Int) -> Int { return a - b } } Calculator에 구현한 더하기 빼기 기능이 잘못된 ..
1. Subject 1.1 Publish Subject - default값(초기값)이 없다 - 다른 옵져버가 subscribe한 순간 아무것도 주지 않지만 데이터가 발생하면 다 준다 1.2 Behavior Subject - default(초기값) 을 넣어주어야한다 - 값이 없을때 (초기값만 있을 때) subscribe하면 초기값을 주고, 값이 있을때 subcribe하면가장 최근의 것을 준다 - 중간에 error가 나면 subscribe하고 있는 모든 옵져버들한테 에러가 간다 1.3 ReplaySubject - default값(초기값)이 없다 - 다른 옵져버가 subscribe하면 여태까지 발생했던것 다 준다 1.4 AsyncSubject - default값(초기값)이 없다 - Subject가 comple..
1. Subject란 Observable과 Observer 모두로 동작할 수 있다. Subject는 ObservableType프로토콜을 채택하고 있는 Observable을 상속하고 있고 ObserverType프로토콜을 채택하고 있기 때문이다. 쉽게 말하면, 데이터를 넣어줄 수도 있고(emit시킬수도 있고), subscribe할 수도 있다. let subject = PublishSubject() let subcriptionOne = subject.subscribe(onNext: { (string) in print(string) }) subject.on(.next("1")) subject.onNext("2") Observable.just(3).subscribe(subject).disposed(by: disp..
1. Observable의 라이프사이클 Observable.just(1).debug("just").subscribe().dispose() 2019-04-04 12:14:44.633: just -> subscribed 2019-04-04 12:14:44.703: just -> Event next(1) 2019-04-04 12:14:44.710: just -> Event completed 2019-04-04 12:14:44.710: just -> isDisposed 2. Observable의 공유 - 옵저버블을 공유하지 않으면 subscribe 횟수 만큼 이벤트가 발생한다 - API Call을 하는 Observable을 두번 subscribe하면 API Call이 두번 일어난다 2.1 Observable을 ..
1) Simple Search ( 단순탐색 ) - 시간복잡도 0(n) 배열의 처음부터 하나하나씩 비교하면서 찾는 방법. n개의 원소를 가진 리스트에서 Simple Search를 사용하면 최대 n 번의 search가 필요할 수 도 있다 2) Binary Search ( 이진 탐색 ) - 시간복잡도 O(logn) Simple Search와 달리, 절반씩 제외시키면서 찾는다 n개의 원소를 가진 리스트에서 Binary Search를 사용하면 최대 log2(n) 번만에 답을 찾을 수 있다 예를 들어, 리스트에 숫자가 8개 있다면 1) Simple Search - 최악의 경우 최대 8개의 숫자 확인 2) Binary Search - 최악의 경우 최대 log2(8) = 3개의 숫자확인 하는 것이다. ex) 리스트에 ..
- Total
- Today
- Yesterday
- cocoapod
- Dart Factory
- SerializerMethodField
- Python Type Hint
- Flutter getter setter
- Flutter Spacer
- drf custom error
- Django Heroku Scheduler
- Watch App for iOS App vs Watch App
- 플러터 얼럿
- ipad multitasking
- 장고 URL querystring
- Django Firebase Cloud Messaging
- github actions
- METAL
- ribs
- Sketch 누끼
- 장고 Custom Management Command
- flutter dynamic link
- Flutter Clipboard
- Django FCM
- 구글 Geocoding API
- Flutter Text Gradient
- 플러터 싱글톤
- Flutter 로딩
- DRF APIException
- flutter build mode
- flutter deep link
- flutter 앱 출시
- PencilKit
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |