티스토리 뷰
* 본 포스팅은 아래 핑구님의 블로그 내용을 참고해서 공부한 흔적입니다.
핑구님의 Combine 블로그 포스팅 링크 ▼
Combine 프레임워크는 무엇일까요..?
Combine은 2019년에 애플에서 직접 만든 내장 프레임워크로 iOS13부터 지원하는 프레임워크입니다. 이말은, iOS13 미만의 버전에서는 Combine 프레임워크 사용이 불가능하답니다. 😢 (이건 SwiftUI도 포함임..., RxSwift 라이브러리는 사용 가능)
Combine 프레임워크는 SwiftUI 등의 swift 코드와 함께 사용할 수 있고, 기존 사용하던 RxSwift 라이브러리 처럼 비동기 이벤트를 보다 간단하게 처리 가능하게 해주는 프레임워크입니다.
Combine 관련 개발자 문서 내용은 아래를 참고해주세요. (발번역이라 오역이 있다면 의견 부탁드려요 ㅠㅠ)
Combine Framework 주요 구성요소
Combine 프레임워크의 주요 구성요소는 크게 네가지가 있습니다.
- Publisher, Subscriber, Operator, Subscription
Publisher 프로토콜
- Publisher는 시간상 일련의 값들을 내보낼 수 있는 타입으로 protocol로 선언되어있습니다.
- Publisher 프로토콜은 Output, Failure(Subscriber) 타입이 제네릭으로 구현되어있습니다.
이후에 소개할 요소중 하나인 Operator(연산자)들 또한 Publisher 프로토콜을 준수하는 struct, class들입니다. 그 예를 들면, Just, Deferred, Empty, Fail 등이 있습니다. (전부 시간날때 포스팅으로 다뤄볼게요!)
Subscriber, 구독자 프로토콜
두번째는 Subscriber입니다.
- Subscriber는 Publisher로부터 값을 받을 수 있는 타입을 정의한 프로토콜입니다.
- Subscriber는 Publisher에게 값을 요청하고, Input을 받을 수 있습니다.
- Subscriber는 Input, Failure(Subscriber) 타입이 제네릭으로 구성되어있습니다.
Operator, 연산자
- Operator는 Publisher를 반환하는 Publisher 프로토콜에 정의된 메서드들을 총칭합니다.
- 여러종류의 Operator들을 함께 Combine하여 사용이 가능하며, Operator를 통해 Publisher가 내보내는 값을 다양하게 처리 가능합니다.
- Operator는 Upstream, Downstream이라고 불리는 Input, Output을 가지고 있습니다.
- 위에 소개하는 struct 타입의 Just는 Operator 중 하나입니다. Just는 Publisher프로토콜을 준수하는 연산자, Operator중 하나로, 단 한번 값을 방출하고 끝내는 연산자입니다. Just 이 외로도 Combine에서 사용 가능한 다양한 Operator가 존재합니다.
Subscription, 구독
세번째는 Subscription 프로토콜입니다.
- Subscription은 Publisher와 Subscriber간의 연결을 표헌하는 프로토콜타입입니다.
- Publisher + Operator + Subscriber로 이루어진 하나의 작업을 Subscription, 구독이라고 합니다.
'iOS 개발 > SwiftUI, Combine' 카테고리의 다른 글
iOS 앱 URL struct 사용, 웹페이지 이동하는 방법 (0) | 2022.09.18 |
---|---|
SwiftUI TextField 이외 빈 View 터치로 키보드 내리는 방법 (0) | 2022.09.12 |
iOS, Composable Architecture 개요 및 특징 알아보기 (0) | 2022.03.19 |
SwiftUI 코드작성 결과 Preview로 띄워서 보는방법 (0) | 2022.02.20 |
Combine 기초, Publisher Subscriber 구독 간 동작방식 (0) | 2022.01.12 |
- Total
- Today
- Yesterday
- swift string
- swift알고리즘
- swift문제
- SwiftUI
- CoreML
- 자연어처리
- createML
- 컬렉션
- ios
- Protocol
- 알고리즘
- Swift 알고리즘
- 김프매매
- swift언어
- 부스트코스
- uikit
- 프로토콜
- 스위프트
- Collection
- swift reduce
- 개발자문서
- publisher
- swift 기초
- swift 문자열
- swift
- 프로그래머스
- 백준swift
- 알고리즘문제
- 프로그래머스swift
- 백준알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |