목록분류 전체보기 (179)
study record
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bitk2j/btrv8caT7mj/6ltZ5ebz6yR8XLUCpPRJTk/img.png)
NotificationCenter NotificationCenter에 등록된 이벤트가 발생하면 해당 이벤트에 대한 행동을 취한다. 앱 내에서 메세지를 던지면 어디에서나 이 메세지를 받을 수 있게 한다. 보통 백그라운드 작업의 결과, 비동기 작업의 결과 등 현재 작업의 흐름과 다른 흐름의 작업으로부터 이벤트를 받을 때 사용한다. 싱글턴 객체 중 하나로, 이벤트들의 발생 여부를 옵저버를 등록한 객체들에게 Notification을 post하는 방식으로 사용한다. Notification Name이라는 Key 값을 통해 보내고 받을 수 있다. NotificationCenter는 notifiaction을 발송하면 NotificationCenter에서 메세지를 전달한 observer의 처리가 완료될 때까지 대기한다(..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Bywl9/btrvPJ84D2B/Gq6JgY2YJmZY5Bp88ouTY1/img.png)
Retain Retain 즉 순환참조 여부를 묻는 것이다. retain : 메모리가 해제되지 않아서 낭비되는 현상을 의미 (Memory Leak) Delegate Delegate 패턴은 어떤 객체가 해야할 일을 대신 처리하도록 프로토콜을 채택하여 위임하는 것 프로토콜에서 필요한 일들을 먼저 작성한다. tableView.delegate = self 이후 프로토콜을 채택하여 위임자(동작을 대신해줄 사람)가 누구인지 알려주면 프로토콜에 정의된 여러 메소드들을 self에서 사용하겠다는 뜻이다. 1. 프로토콜 안에 특정 기능을 할 함수들을 깡통함수로 선언 2. 프로토콜을 변수로 선언 3. vc에서 프로토콜 채택 4. 프로토콜 변수에 self로 대리자 위임. 5. 관련 업무 수행하도록 구현 Delegate의 Ret..
Subject 실시간으로 Observable에 값을 추가하고, Subscriber에게 이벤트나 값을 방출할 수 있는 것. Observable이자 Observer인 것이 Subject이다. Subject를 통해 실시간으로 값을 추가하고 구독할 수 있다. Subject를 사용하여 Cold Observable을 Hot Observable로 변환할 수 있다. Relay란? Relay Class는 RxCocoa4에서 구현되었고, PublishRelay와 BehaviorRelay 클래스가 존재한다. RxSwift인 Subject와 다르게 Relay는 RxCocoa의 클래스이다. 또한 Relay는 Subject와 다르게 onNext(_:)가 아닌 acceept(_:)를 통해 새로운 이벤트를 전달한다. 그리고 subs..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cSGcpU/btrvHZqFcHK/OpLKm68zjanPXN04FviOA1/img.png)
Subject Subject는 Observable이자 Observer 두 역할 모두를 수행한다. next 이벤트를 통해 값을 전달받고, 이벤트를 수신할 때마다 subscriber를 통해 방출한다. Subject 종류 PublishSubject : 빈 상태로 시작하여 새로운 값만을 subscriber에 방출 BehaviorSubject : 하나의 초기값을 가진 상태로 시작하여, 새로운 subscriber에게 초기값 또는 최신값을 방출 ReplaySubject : 버퍼를 두고 초기화하며, 버퍼 사이즈 만큼의 값들을 유지하면서 새로운 subscriber에게 방출 Variable : BehaviorSubject를 래핑하고, 현재의 값을 상태로 보존. 가장 최신/초기 값만을 새로운 subscriber에게 방출 P..