Combine

    Combine | Scheduler

    Combine | Scheduler

    Scheduler는 언제(시간), 어떻게(스레드) Publisher의 작업들이 수행될지를 결정하기 위한 프토토콜입니다. Apple에서 언제, 어떻게...를 위한 api에는 DispatchQueue, OperationQueue, RunLoop등이 있는데요! 그리고 Scheduler는 프로토콜이라고 했는데요. iOS13부터 DispatchQueue, OperationQueue, RunLoop에서 Scheduler를 채택하고 있기 때문에 이를 그대로 Combine에서도 사용할 수 있습니다@_@ 기존에 DispatchQueue를 사용할 때 Closure를 중첩된 형태로 써서 여러 스레드를 전환하면 가독성이 안좋을 수 밖에 없었지만 Combine은 선언형으로 사용하기 때문에 가독성 좋게 사용할 수 있다는 장점도 ..

    Combine | Operator

    Combine | Operator

    이번 포스팅에선 오퍼레이터가 뭔지 알아볼게요! 메를린이라는 학생이 졸업할 때 모델의 값을 변화시키고 싶습니다. 그래서 각각의 퍼블리셔와 섭스크라이버를 만들고 퍼블리셔에게 섭스크라이버를 등록했습니다. 하지만 위의 예시는 컴파일 되지 않는데요! 왜냐면 퍼블리셔와 섭스크라이버는 짝짜꿍이기 때문에 타입이 일치해야 하는데! 그렇지 않아서 그렇습니다. 노티피케이션 센터는 Notification을 만드는데, 섭스크라이버는 Int 타입(grade)입니다. 그래서 두 사이를 변환시켜줄 무언가가 있어야 합니다. 그때 필요한 것이 Operator 입니다. 사실 오퍼레이터는 퍼블리셔라고 할 수 있는데요! 왜냐하면 `Publisher` 프로토콜을 채택하고 있기 때문입니다. 역시나 선언형으로 사용할 수 있고, value 타입입니..

    Combine | Publisher and Subscriber

    Combine | Publisher and Subscriber

    Combine에는 Publisher와 Subscriber가 있습니다. 이름만 봐도 둘이 무언갈 주고받으면서 사이좋게 지내겠구나...가 느껴지지않나요?ㅎㅎ 이 친구 둘이서 이벤트를 주고 받고 하는 사이인데요. Combine을 배우는 이유가 이벤트를 어떻게 처리하는지 알기 위해서잖아요. 그걸 알기 위해서 이 Publisher와 Subscriber가 무엇인지 살펴보도록 하겠습니다. 일단 퍼블리셔와 섭스크라이버가 어떤 친구들인지 먼저 알아야겠죠? 하지만 이름만 봐도 감이 오죠? Publisher: 이벤트를 어떻게 발행할 것인지 정의한 프로토콜 Subscriber: 퍼블리셔에게 이벤트를 요청하고, 퍼블리셔가 여러 체인을 통해 전달해준 이벤트를 받아 처리하는 걸 정의한 프로토콜 이 두개는 프로토콜인데 일단 퍼블리셔..

    Combine | Overview

    Combine | Overview

    안녕하세요:) 느슨해진 아리… 정신 체리!입니다. 2022년, 캘리포니아 사과농장 출신 컴바인이라는 친구와 친해져보기로 했습니다. 친해지려면 어떤 친구인지 알아봐야겠죠? A unified, declarative API for processing values over time 애플의 WWDC 2019 발표에선 다음과 같은 문장으로 combine을 정의했는데요. 정리해서 말하면 이벤트 처리 연산자들을 결합해서 👯비동기 이벤트를 처리하는 선언형 API👯 라고 할 수 있습니다. 비동기 이벤트는 네트워크 연결이라든지, 파일을 불러온다든지 그런 과정에서 나중에 느릿느릿 생기는 데이터를 말하죠? 하지만 비동기 프로그래밍 방식이 새롭게 생긴게 아니라 옛날에도 현재에도 존재하고 있었어요. Apple에서 제공하는 다양한 ..