일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 네트워크
- UIKit
- combine
- 달력
- firebase
- arkit
- Concurrency
- WWDC
- environmentobjet
- ios
- SwiftUI
- realitykit
- ar
- GCD
- gesture
- Performance
- auth
- fullscreencover
- CS
- dataflow
- iphone
- 데이터최적화
- Animation
- withAnimation
- stateobject
- authentication
- swift
- Network
- state
- RxSwift
- 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 |