XLOG

[WWDC19] Introducing Combine 본문

Swift/Etc

[WWDC19] Introducing Combine

X_PROFIT 2023. 2. 1. 00:56

시작에선 비동기 프로그래밍에 대해 이야기를 해보자고 시작을 한다.

위 화면에서 보면 회원가입시 앱은 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