본문 바로가기

개발

Combine Publishers

728x90

Combine에서 퍼블리셔는 데이터 스트림을 구동하는 일꾼입니다. 그들은 소스 역할을 하며, 구독자가 소비할 수 있는 값이나 이벤트를 시간이 지남에 따라 방출합니다. Combine의 퍼블리셔에 대한 자세한 내용은 다음과 같습니다.

 

enum Publishers

Types of Publishers:

  • Value Publishers:

단일 값을 방출한 후 완료합니다.
단 하나의 데이터만 전송해야 하는 간단한 시나리오에 유용합니다.
예: 문자열 "Hello, world! "를 내보낸 다음 완료합니다. Just("Hello, world!")

  • Subject Publishers:

여러 구독을 허용하고 새로운 구독자에게 초기 값을 보낼 수도 있는 인기 있는 게시자입니다.
두 가지 일반적인 유형:
CurrentValueSubject: 현재 가치를 유지하고 구독 즉시 해당 가치를 새로운 구독자에게 전달합니다.
PassthroughSubject: 내부 상태가 없고 구독 후 방출되는 모든 값을 구독자에게 전달합니다.
예: 초기값 10으로 주제를 만듭니다. 새로운 구독자는 먼저 10을 받습니다. CurrentValueSubject<Int>(10)

  • Connectable Publishers:

데이터 흐름을 시작하려면 명시적 호출이 필요합니다.
네트워크 요청이나 사용자 상호작용 등 데이터 스트림이 시작되는 시점을 제어하려는 시나리오에 유용합니다 .
예: 스트림을 시작하기 전에 최대 2개의 요소를 버퍼링하는 연결 가능한 퍼블리셔를 만듭니다. 흐름을 시작하려면 호출해야 합니다 . multicast(bufferSize: 2)start()

  • Custom Publishers:

 

특정 데이터 소스나 논리를 처리하기 위해 자체 게시자 유형을 만들 수 있습니다.

이를 통해 Combine 애플리케이션에서 유연성과 사용자 정의가 가능합니다.

 

 

게시자 구독:

퍼블리셔는 데이터를 직접 푸시하지 않습니다. 대신 구독자는 퍼블리셔와 연결을 설정하여 방출된 요소를 수신합니다. 구독이 작동하는 방식은 다음과 같습니다.

  1. 구독자 정의: 프로토콜 을 구현하는 구독자 객체를 정의합니다 Subscriber.
  2. 구독 시작: 구독자는 게시자의 메서드를 호출하여 연결을 시작합니다. 일반적인 메서드는 다음과 같습니다.

키 포인트:

  • 게시자는 Combine에서 데이터 스트림의 시작점입니다.
  • 다양한 퍼블리셔 유형은 다양한 사용 사례에 맞게 구성됩니다.
  • 구독은 게시자로부터 데이터를 받는 데 필수적입니다.
  • Combine은 구독자에게 도달하기 전에 데이터 스트림을 변환하거나 필터링하기 위해 게시자와 연결할 수 있는 강력한 연산자를 제공합니다.

추가 고려 사항:

  • 게시자는 구독자가 적절하게 처리할 수 있도록 데이터 스트림을 통해 오류를 전파할 수도 있습니다.
  • Combine은 동시성 기능과 잘 통합되어 비동기 데이터 처리가 가능합니다.

다양한 게시자 유형을 효과적으로 활용하고 구독 메커니즘을 이해하면 Combine 사용하여 iOS, iPadOS, macOS, watchOS tvOS 애플리케이션 에서 강력하고 확장 가능한 데이터 파이프라인을 구축할 있습니다 .

'개발' 카테고리의 다른 글

Combine Publisher - Just  (0) 2024.07.08
Publisher & Subscriber - Combine  (0) 2024.07.08
Combine Publisher  (0) 2024.07.08
Combine을 사용한 이벤트 수신 및 처리  (0) 2024.07.08
iOS Combine 이란?  (0) 2024.07.08