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) 리스트에 ..
[1] MVC (Model-View-Controller) * 장점 1) 역할분담을 고려한 구조를 빠르게 구현 할 수 있음 * 단점 1) MVC는 MVC (Massive View Controller) ?!!? Model에 넣기도 애매하고 View에도 넣기 애매한 코드들은 모두 Controller에 들어가게 되어서 Controller가 비대해진다 그래서 MVC를 Massive View Controller라고 풍자하기도 한다...! ex) 날짜 데이터를 각 국가별 양식으로 포맷하는 코드. 비즈니스 로직이나 데이터라고 보기도 어렵고 UI라고 보기도 어렵다 결국 이와같은 Formatting 담당코드들은 Controller에 들어가게 된다 2) 애플의 MVC 패턴에서는 View와 Controller가 너무 친함 애..
이렇게 준비를 한다..! 1. 뷰컨에 TableView를 올려주고 2. Tableview에 TableViewCell을 올려주고 3. TableViewCell의 identifier를 NameCell 로 설정해준다 그리고 RxTableViewController에 RxSwift와 RxCocoa를 import 하고 bind할 준비를 해준다 >> 총 4가지 방법으로 tableView를 그릴 수 있다 https://github.com/RxSwiftCommunity/RxDataSources 를 보면 다음과 같이 나와있다 Bind the data to the tableView/collectionView using one of: rx.items(dataSource:protocol)rx.items(cellIdentifie..
[1] Delegate Proxy 개념Rxswift의 DelegateProxy.swift와 DelegateProxyType.swift 이 두 파일은 delegate를 사용하는 프레임워크랑 Rxswift의 다리역할을 해주는 파일이다 (즉 delegate를 사용하는 친구들을 Rx에서도 편하게 활용할 수 있도록 연결해준다) DelegateProxy Object는 fake delegate object를 만드는데, 이 fake delegate object은 수신된 모든 데이터를 전용 observables로 프록시한다(표현한다?!) ==> 설명은 너무 어렵다 모호하다.. 예제로 이해하자 delegate를 가지고 있는 객체 중, MKMapView 를 살펴본다 open class MKMapView : UIView, N..
@markdown 티스토리에 마크다운을 적용해보았으나 예쁘지 않다 😧 코드 색깔이 살지 않는다 😔 예쁘게 보려면 깃헙으로~!~!~!~!~!~!~! [요기요기](https://github.com/eunjin3786/iOSStudy/blob/master/프로토콜.md ) 눌러보아요 # Protocol ## 1. 프로토콜 이란 프로토콜은 특정 역할을 하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진. 구조체, 클래스, 열거형 은 프로토콜을 채택해서 프로토콜의 요구사항을 실제로 구현한다 프로토콜의 요구사항을 모두 구현한 타입을 '해당 프로토콜을 conform(준수)한다' 라고 표현한다 ```swiftprotocol 프르토콜이름 { 프로토콜 정의 }``` ### 1.1 프로퍼티 요구사항 var키워드를 사용..
첫번째 CaseIterable 프로토콜 >> CaseIterable 프로코콜을 conform 하기 전 ( 따르기전 ) 모든 메뉴를 담은 리스트를 만들고 싶다면 원소하나씩 넣어줘야한다 enum Menu:String{ case scone = "스콘" case bagel = "베이글" case ciabatta = "치아바타"} struct MenuListViewModel { let menus:[Menu] = [.scone,.bagel,.ciabatta]} >> CaseIterable 프로코콜을 conform 한다면 allCases로 enum안에 있는 모든 케이스들을 담은 배열을 얻을 수 있다 menus의 타입은 [Menu] 이다 : ) enum Menu:String, CaseIterable{ case scon..
- Total
- Today
- Yesterday
- METAL
- flutter deep link
- cocoapod
- PencilKit
- 장고 Custom Management Command
- Flutter getter setter
- Django Heroku Scheduler
- flutter build mode
- Python Type Hint
- Sketch 누끼
- Flutter Spacer
- ribs
- SerializerMethodField
- flutter 앱 출시
- 플러터 싱글톤
- ipad multitasking
- Django FCM
- Dart Factory
- 플러터 얼럿
- DRF APIException
- Django Firebase Cloud Messaging
- flutter dynamic link
- drf custom error
- Flutter Text Gradient
- Flutter 로딩
- 장고 URL querystring
- Watch App for iOS App vs Watch App
- github actions
- Flutter Clipboard
- 구글 Geocoding API
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |