Jinsujin / translate-documents

iOS 연관 문서 번역
0 stars 0 forks source link

[framework] Combine #5

Open Jinsujin opened 1 year ago

Jinsujin commented 1 year ago

iOS13+

Customize handling of asynchronous events by combining event-processing operators. 이벤트 처리 연산자를 결합(combining) 함으로써 비동기 이벤트의 처리를 커스터마이징한다. 👉 Document

Combine framework 는 시간 경과에 따른 값 처리를 위한 선언적(declarative) SwiftAPI 를 제공 한다. 이 값들은 많은 종류의 비동기이벤트를 나타낼 수 있다.

Combine 은 시간이 지남에 따라 변할수 있는 값을 노출하기위해(드러내기위해) publishers 를 선언한다. 그리고 subscriberspublishers 로 부터 값을 받을 수 있다. Publisher protocol 은 시간이 지남에 따라 일련의 값을 전달할 수 있는 type을 선언한다. ⇒ 시간이 지남에 따라 순차적으로 값이 변경되는데, 그것을 sequence 라고 하는 듯

publishers 는 upstream publishers 로 부터 받은 값에 따라 실행하고 이를 다시 게시(republish)할 수 있는 operators 가 있다. publishers 의 체인 끝에서, Subscriber 는 elements 를 받는대로 elements 에 대해 실행한다. Publishers 는 subscriber 가 명시적으로 요청한 경우에만 값을 내보낸다(emit). ❓이렇게 하면 subscriber 코드가 연결된 publishers 로 부터 이벤트를 받는 속도를 제어할 수 있다.

Timer, NoticicationCenter, URLSession 을 포함한 여러 Foundation type 은 publishers 를 통해 기능을 노출(expose)한다. Combine 은 또한 Key-Value Observing 을 준수하는(compliant) 모든 property 에 대해 built-in publisher(내장된 게시자) 를 제공한다.

당신은 여러 publishers 의 output 을 결합하고, 상호작용을 조정할 수 있다. 예를들어 text field 의 publisher 에서 update 를 subscribe 하고, 그 text 를 사용해서 URL request 를 수행할 수 있다. 그런다음 다른 publisher 를 사용해서 응답을 처리하고 이를 이용해서 app 을 업데이트 할 수 있다.

Combine 을 쓰면, 당신의 event-processing code 를 중앙집중화 하고 중첩된 클로저 및 convention-based callback 같은 번거로운 기술을 제거하여 코드의 가독성과 유지보수를 쉽게 할 수 있다.

Jinsujin commented 1 year ago

Combine 에 대한 이해

Jinsujin commented 1 year ago

Example

참고자료

Document WWDC19