애플의 firstparty framework : combine 정복
Reactive 프로그래밍 중 하나인 RxSwift에 대해 공부한 적이 있다.
RxSwift는 ThirdParty framework인 반면 애플에서 만든 FirstParty framework 인 combine을 이번에 배워보려한다.
combine 공식문서 를 참고하였다.
공식문서에 다음과 같이 안내되어있다.
Customize handling of asynchronous events by combining event-processing operators.
즉 combine을 사용한다면, 비동기 이벤트를 operators를 사용해 다룰수 있다.
비동기이벤트 처리를 할 때 가장 중요하다고 생각되는 부분은 개인적으로 작업이 완료된 시점을 아는 것이라고 생각한다.
예를들어, 네트워크통신을 진행하여 테이블뷰를 업데이트해줘야하는 상황이 있다 가정해보자. Completion Handler로 escaping closure 사용해, 네트워크 통신이 완료되었을때 완료된 result로 이벤트를 처리해 줄 수 있다.
이처럼 비동기이벤트를 처리해줄때 closure를 사용해 줄수 있다.
하지만 closure이외에도 GCD를 사용해줄 수 도 있고, delegate를 사용해 줄 수도 있다.
이렇게 다양한 비동기 처리를 일관되게 통합해주는 프레임워크가 바로 combine이다.
combine을 사용하게 된다면, 이를 통합해 줄 수 있기 때문에 유지보수 측면에서 훨씬 이득이라고 생각한다.
다음부턴, combine의 주요 컴포넌트에 대해 정리해보도록 하겠다.