목록2025/04 (4)
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)📌 주요..