Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 패킷교환네트워크
- 단편화
- 광섬유케이블
- premble
- Mobile Communication
- 다익스트라최단경로
- 채널톡
- 서로소 집합
- 애니캐스트
- ethernet_frame
- 패킷
- swift_tca
- ios
- 바이너리서치
- Algorithm
- baekjoon 17406
- Python
- 알고리즘
- 네트워크
- Multi Access
- Swift
- 트위스티드페어케이블
- 스위프트
- 이더넷프레임
- 최단거리 알고리즘
- internetprotocol
- 네트워크 전송방식
- 의존성역전
- 합집합 찾기
- the composable architecture
Archives
- Today
- Total
INEEDACHACHA
Combine - Publisher (컴바인 퍼블리셔) 본문
개념
- 이벤트 처리 연산자를 조합하여 비동기 이벤트 처리를 사용의 의도대로 처리하는 것
특징
- 컴바인 프레임워크는 시간이 지남에 따라 값을 처리할 수 있는 선언적 스위프트 API를 제공한다.
- 이러한 값들은 많은 종류의 비동기 이벤트를 표현할 수 있다.
- 컴바인은 시간이 지남에 따라 변경될 수 있는 값을 방출하기 위해 Publisher를 선언하고, Subscriber는 게시자로부터 해당 값을 받는다.
- 퍼블리셔 프로토콜은 시간에 따라 일련의 값을 전달할 수 있는 유형을 선언한다.
- 퍼블리셔들은 업스트림 퍼블리셔들로부터 받은 값에 대해 행동하고 다시 그 것들을 방출할 연산자를 가지고 있다.
- Subscriber는 Publisher의 연쇄의 끝에서 요소를 수신할 때 작동한다.
- Subscriber가 명시적으로 요청할 때만 Publisher들은 값을 발신해준다.
- Subscriber 코드가 연결된 Publisher로부터 이벤트를 얼마나 빨리 수신하는지 제어할 수 있다.
- 이벤트 처리 코드를 중앙 집중화(centralizing)하고 중첩된 closure 및 콜백과 같은 까다로운 기술을 제거하여 코드를 읽고 유지보수하기 쉽게 만든다.
프로토콜
- Publisher
- Subscriber
- Subject
- Scheduler
- Cancellable
Publiser
- 타입이 시간에 따라 일련의 값을 전송(Transmit) 할 수 있음을 선언
- Publisher는 하나 이상의 Subscriber 인스턴스에게 element를 제공한다.
- Publisher는 receive(subscriber:) 메소드를 구현해 subscriber를 accept한다.
- 값을 방출한다는 개념으로 이해하면 된다.
Subscriber
- Publisher로 부터 input을 받을 수 있는 타입을 선언하는 프로토콜
- Subscriber의 인스턴스는 Publisher의 element stream(그들의 relationship 변경사항을 설명하는 life cycle 이벤트를 받는다)
- 방출된 값 또는 완료 이벤트를 통해 '무언가'를 한다는 것으로 이해하면 된다.
Flow
- '시간의 흐름에 따라'라는 것은 상기의 그림으로 이해하면 빠르다.
- 1초에 4를 방출하고, 5초에 8이라는 값을 방출한다
- 이렇게 방출된 값들은 하나 또는 그 이상의 Subscriber 에게 전달된다.
- Publisher<Int, Never>를 살펴보면 <Output,Failure> 타입이다.
- Output은 Publisher가 방출하는 값의 종류이고, Failure는 Publisher가 방출할 수 있는 에러의 종류이다.
- Subscriber의 Input & Failure의 associated type은 publisher의 Output & Failure 타입과 일치해야한다.
Publisher의 종류
- Future: 성공하거나 실패하거나 하나의 값을 방출한 후 완료된다.
- Just: 각각의 subscriber에게 딱 한 번 값을 방출하고 완료된디.
- Empty: 어떤 값도 내보내지 않는다.
- Fail: 특정한 error와 함께 즉시 종료된다.
'iOS' 카테고리의 다른 글
TCA with SwiftUI (The Composable Architecture) (0) | 2024.08.01 |
---|---|
[UIKit] Tabbar - Programmatic (0) | 2024.05.15 |
Dependency Inversion Principle feat.Swift (의존성 주입, 역전) (0) | 2024.03.31 |
Clean Architecture on iOS (MVVM) (0) | 2024.03.23 |
Combine - Subscriber (컴바인 구독) (0) | 2024.03.20 |