CONCURRENCY

11
P_001 · SWIFT

URLSession 취소를 실패 알림으로 보여주지 않기

Swift concurrency에서 URLSession 요청을 취소했는데 에러 토스트가 뜨는 문제를 CancellationError와 URLError.cancelled 기준으로 정리한다.

JUN 02, 2026 · 6 MIN
#swift#urlsession#concurrency
P_002 · SWIFTUI

SwiftUI .task vs .onAppear, 어느 쪽이 안전한가

화면이 사라질 때 비동기 작업이 따라서 취소되느냐의 문제. .task와 .onAppear { Task { } }가 같아 보여도 동작이 갈리는 지점을 정리한다.

MAY 26, 2026 · 3 MIN
#swiftui#task#concurrency
P_003 · SWIFT

RxSwift 코드베이스에서 async/await로 점진 마이그레이션하는 방법

RxSwift 의존이 큰 iOS 프로젝트에서 신규 코드부터 Swift Concurrency로 옮기는 단계별 전략. Repository async 미러, UseCase 공존, 호출자 화면 단위 전환까지.

MAY 21, 2026 · 7 MIN
#swift#rxswift#asyncawait
P_004 · SWIFT

@MainActor를 클래스에 통째로 붙이면 생기는 fetch 함정

UIKit 때문에 클래스 전체에 @MainActor를 붙였다가 async fetch까지 메인 액터에 묶인 사례. Swift Concurrency에서 UI 빌드와 데이터 fetch 격리를 나누는 방법.

MAY 21, 2026 · 6 MIN
#swift#concurrency#mainactor
P_005 · SWIFT

Swift Concurrency 프로젝트에서 GCD가 여전히 답인 자리들

Concurrency로 통일 중이지만 GCD를 일부러 남긴 자리들 — 폴링, fire-and-forget, RW lock, 그리고 sync 콜백

MAY 20, 2026 · 8 MIN
#swift#concurrency#gcd
P_006 · SWIFT

GCD 시리얼 큐로 로그 라이터를 재작성한 이유 — actor + AsyncStream을 버린 결정

actor는 mutual exclusion을 보장하지만 thread identity는 보장하지 않는다. Realm/SwiftData 같은 thread-confined 자원에는 GCD serial queue가 답인 이유.

MAY 13, 2026 · 5 MIN
#swift#concurrency#gcd
P_007 · SWIFT

Swift 6에서 매일 만나는 변화 7가지 — strict concurrency부터 typed throws까지

Swift 6에서 매일 실무 코드를 만질 때 부딪히는 변경 7가지 정리. strict concurrency 모드, Sendable 강제, typed throws, existential any 강화, migration mode 등.

MAY 13, 2026 · 4 MIN
#swift#swift 6#concurrency
P_008 · SWIFT

Realm에서 SwiftData로: 42개 모델을 옮기는 전략과 함정 (Part 5 — Async/Await 통합)

동기 메서드 안에 숨겨둔 Task { await }는 호출자가 sync 완료를 모르는 fire-and-forget 안티패턴이다. SwiftData 갱신 전 옛 캐시 query가 먼저 도착해 EmptyView 한 프레임이 깜빡인 흐름과 async 시그니처 전파로 정직하게 푼 패턴 정리.

MAY 12, 2026 · 10 MIN
#swiftdata#realm#ios17