| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 알고리즘
- date
- authentication
- Algorithm
- SwiftUI
- auth
- iphone
- RxSwift
- SwiftData
- dataflow
- ios
- state
- UIKit
- arkit
- CS
- 최적화
- sheet
- async
- gesture
- Animation
- GCD
- swift
- WWDC
- Concurrency
- stateobject
- Network
- combine
- withAnimation
- DateFormatter
- firebase
- Today
- Total
XLOG
[WWDC19] Introducing Combine 본문
시작에선 비동기 프로그래밍에 대해 이야기를 해보자고 시작을 한다.

위 화면에서 보면 회원가입시 앱은 user name, password 를 요청하며 이때 유효한 user name 인제, password 는 맞는지 확인을 해야한다.

username의 경우엔 타이핑을 감지, 멈추면 서버와 통신하여 유효한지 확인, 패스워드의 경우는 패스워드 확인과 같은지 체크를 해야한다.
기존엔 그러기 위해 수많은 타겟, 액션이 필요했다. 또한 이 과정에서 메인스레드가 막히지 않게 하여 반응형 유저인터페이스가 유지하도록 해야한다. ( user name을 확인하는 중에 password를 입력하거나, 확인하거나가 같이 이루어져야 한다 )
참 많은 비동기 동작을 진행해야하기에 복잡하며, 좀 더 사용성을 쉽게 하기 위해 서드파티를 이용하기도 한다.
컴바인은 위에 모든 동작을 대체하는 것은 아니다. 위에 동작들의 공통되 항목들을 찾기위해 시작된 것이다.

Combine 은 통합된 선언형 api 이다, 시간에 따라 값을 전달받기위해. 또한 Swift를 위해 만들어 졌다. 이 말 뜻은 우리는 제네릭과 같은 스위프트의 이점을 가질 수 있다는 의미이다. 제네릭과 같은 이점이라면, 제네릭에 위해 우리가 써야할 코드들이 깔끔하고 간결해 진 것을 의미한다. 이러한 제네릭 알고리즘을 이용하여 비동기 동작을 만들어 낸다.
또한 Combine은 안전하다. 런타임이 아닌 컴파일 도중에 error를 catch 한다. Combine의 주된 설계포인트는 composition을 우선으로 했다. 쉽게 이해할 수 있게 하기 ㅜ이해서.
마지막으로 Combine은 요청을 관리하여 메모리 사용, 앱의 퍼포먼스 관리에 있어 더 좋은 이점을 같는다.

구성요소는 Publisher, Subscribers, Operators 이다.
간단하게 Publisher 는 요청에 따른 값을 변화시키며 그것을 Subscriber에 전달한다.

하지만 이 사이에 Operator가 필요하다.



하나의 예시로 organizing, decomposing, arraging 각각의 publisher를 zip이란 operator를 통해 Subscriber에 할당하여 Continue 버튼을 활성화 시킬 수 있다.
대략적인 개념을 이해했으니, 다음은
Combine in Practice를 정리해봐야 겠다.
'Swift > Etc' 카테고리의 다른 글
| [Swift] Async/await 의 이해 (0) | 2023.02.18 |
|---|---|
| [Swift] GCD 이해하기 (0) | 2023.02.16 |
| [아키텍쳐] MVC VS MVVM 의 간단한 정리 (2) | 2023.02.03 |
| [WWDC] Combine in Practice 보고 Combine 이해하기 (0) | 2023.02.02 |
| [FirebaseAuth] Authentication (0) | 2023.01.30 |