이 글은 ‘애플 개발자 문서’ 에 있는 Combine1 문서를 번역하고, 설명이 필요한 부분은 주석을 달아서 정리한 것입니다.
‘이벤트-가공 (event-processing) 연산자’ 를 조합하여 ‘비동기 (asynchronous) 이벤트’ 처리를 사용자 정의함
‘컴바인 (Combine)’ 프레임웍은 시간에 따라 값을 가공하기 위해 ‘선언형 스위프트 API’2 를 제공합니다. 이 값들은 많은 종류의 비동기 이벤트를 표현할 수 있습니다. ‘컴바인’ 은 시간에 따라 바뀔 수 있는 값을 노출하는 발행자 (publisher) 와, ‘발행자’ 로부터 이 값을 받는 구독자 (subscribers) 를 선언합니다.
Timer, NotificationCenter, 그리고 URLSession 를 포함한, 여러 ‘기반 (Foundation) 타입’3 들은 ‘발행자’ 를 통해 자신의 기능을 노출합니다. ‘컴바인’ 은 ‘키-값 관찰 (Key-Value Observing)’4 을 따르는 어떤 속성에도 ‘내장된 발행자’ 를 제공합니다.
여러 발행자의 출력을 결합하여 이들의 상호 작용을 어울리도록 조정할 수 있습니다. 예를 들어, ‘텍스트 필드’ 발행자에서 갱신 내용을 구독하여, ‘URL’ 요청을 하는데 ‘텍스트’ 를 사용할 수 있습니다. 그런 다음 응답을 가공하고 이를 앱을 갱신하는데 사용하기 위해 또 다른 ‘발행자’ 를 사용할 수 있습니다.
‘컴바인 (Combine)’ 을 채택하여, ‘이벤트-가공’ 코드를 ‘중앙 집중화’ 하고 ‘중첩 클로저’ 와 ‘협약에-기초한 콜백’5 같은 성가신 기술을 없앰으로써, 코드를 이해하고 유지하기가 더 쉬워질 것입니다.
‘선언형 (declarative)’ 에 대한 더 자세한 정보는, 위키피디아의 Declarative programming 항목과 선언형 프로그래밍 항목을 보도록 합니다. ↩
여기서 말하는 ‘기반 (Foundation)’ 은 스위프트에서 가장 기초가 되는 ‘Foundation 프레임웍’ 을 말합니다. ↩
‘키-값 관찰 (Key-Value Observing)’ 에 대한 더 자세한 정보는, 애플 개발자 문서의 Using Key-Value Observing in Swift 항목을 보도록 합니다. ↩
‘협약에-기초한 콜백 (convention-based callbacks)’ 은 이벤트를 ‘콜백 (callback) 함수’ 로 처리하려면 양쪽 사이에 서로 ‘협의해서 약속한 (convention)’ 정보가 있어야 함을 의미합니다. ↩