LATEST · SWIFT

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

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

SERIES · SwiftUI 디버깅 패턴 (3)
SEE ALL →
RECENT POSTS 08 / 71
P_001 · SWIFTUI

SwiftUI onChange 안에서 state 다시 set하면 무한 루프 돈다

SwiftUI onChange 안에서 감시 중인 state를 다시 set하면 어떻게 무한 호출이 도는지 어떤 식으로 끊었는지 정리한 글

MAY 21, 2026 · 6 MIN
#swiftui#onchange#state
P_002 · SWIFT

UIKit 모달 여러 개가 동시에 present 될 때 큐로 줄 세운 기록

UIKit에서 여러 publisher가 동시에 modal present를 트리거할 때 생기는 충돌을 priority queue, RunLoop 디바운스, dismiss completion으로 직렬화한 사례.

MAY 21, 2026 · 8 MIN
#uikit#coordinator#modal
P_003 · SWIFT

Coordinator re-attach 때 생기는 deinit race window 막기

UIKit Coordinator를 재부착하는 순간 old coordinator deinit과 외부 push/deeplink 이벤트가 겹치며 생기는 race window를 막는 방법.

MAY 21, 2026 · 7 MIN
#ios#coordinator#uikit
P_004 · SWIFT

iOS 푸시 알림 중복 진입을 막는 2층 dedupe 패턴

같은 iOS 푸시가 notification tap, cold launch, pending route 경로로 중복 처리되는 문제를 fingerprint dedupe와 envelope id 소비 추적으로 막은 사례.

MAY 21, 2026 · 6 MIN
#ios#pushnotification#swift
P_005 · SWIFT

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

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

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

iOS Coordinator에서 푸시 진입을 단일 라우터로 정리한 기록

UIKit MVVM Coordinator 앱에서 list ViewModel이 푸시를 직접 구독하던 구조를 AppNavigationRouter와 async/await 기반 단일 진입점으로 정리한 사례.

MAY 21, 2026 · 7 MIN
#ios#swift#coordinator
P_007 · SWIFT

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

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

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

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

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

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