목록iOS/Combine (5)
J
Combine에서의 에러 처리: tryMap, catch, replaceErrorCombine을 사용하다 보면 네트워크 요청, JSON 파싱, 사용자 입력 등 다양한 상황에서 에러가 발생할 수 있습니다.Combine에서는 스트림 중간에 에러가 발생하면 스트림이 종료되므로, 이를 적절히 처리할 수 있는 에러 핸들링 기법이 중요합니다.1. 에러가 있는 Publisher vs 없는 PublisherCombine에서는 Publisher가 에러를 발생시킬 수 있는지 여부에 따라 타입이 다릅니다.// 에러를 발생시키지 않는 Publisherlet noErrorPublisher = Just("Hello") // 타입: Just// 에러를 발생시킬 수 있는 Publisherlet errorPublisher = Fail..
Scheduler와 비동기 처리 이해하기Combine을 실제 프로젝트에서 사용하다 보면,"어떤 쓰레드에서 이 작업이 실행될까?", "UI 업데이트는 메인에서 해야 하지 않나?"같은 질문이 생기게 됩니다.이럴 때 사용하는 것이 바로 Scheduler(스케줄러) 입니다.이번 글에서는 Combine에서의 쓰레드 처리와 비동기 흐름 제어 방법에 대해 기초부터 차근히 알아보겠습니다.Scheduler란?Scheduler는 Combine에서 작업을 어떤 스레드/큐에서 실행할지를 제어할 수 있게 해주는 개념입니다.즉, 데이터를 발행하거나 받는 시점의 쓰레드를 지정할 수 있습니다.대표적인 Scheduler 종류Scheduler설명DispatchQueue.main메인 스레드 (UI 업데이트에 필수)DispatchQueue..
1. Subject란?Subject는 Combine에서 Publisher와 Subscriber 역할을 동시에 수행하는 특수한 타입입니다.외부에서 직접 값을 전달할 수 있기 때문에, 사용자 입력, 이벤트 트리거, 수동 제어가 필요한 상황에서 많이 사용됩니다.Combine에서 제공하는 Subject는 2가지타입설명PassthroughSubject현재 값을 저장하지 않고 발행CurrentValueSubject하나의 값을 저장하며 새로운 구독자에게 즉시 전달✅ PassthroughSubject 예제import Combinelet subject = PassthroughSubject()subject .sink { print("받은 값:", $0) }subject.send("Hello") // 출력: 받은 값:..
Combine 핵심 구성 요소 자세히 알아보기Publisher, Subscriber, Operator, Cancellable앞선 글에서는 Combine의 기본 개념과 흐름을 간단히 소개했었죠.이번 글에서는 Combine을 제대로 활용하기 위해 꼭 이해해야 할 네 가지 구성 요소를 좀 더 깊이 살펴보겠습니다.🟢 Publisher – 데이터의 발행자Publisher는 말 그대로 값을 외부로 전달하는 역할을 합니다.Combine에서 대부분의 동작은 Publisher로부터 시작됩니다.let publisher = Just("Hello")📌 Publisher는 두 가지 이벤트를 전달값 (Value) – 실제 데이터완료 이벤트 (Completion) – .finished 또는 .failure(Error)📌 주요..
Combine을 사용하여 동일한 네트워크 요청과 데이터 바인딩을 처리를 예제를 통해 알아보도록 하겠습니다.Combine은 Swift의 선언적 프로그래밍 방식으로 데이터 스트림을 처리하며, 네트워크 통신과 같은 비동기 작업에도 유용합니다.1. Network 통신 결과 Modelimport Foundationtypealias Markets = [Market] // Markets는 Market의 배열struct Market: Hashable, Decodable { let market, koreanName, englishName: String // 각 마켓 정보 enum CodingKeys: String, CodingKey { case market case koreanName..