SWIFT

19
P_001 · SWIFT

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

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

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

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

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

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

Foundation Models, Swift 3줄로 온디바이스 LLM 호출하기

iOS 26 Foundation Models 프레임워크 덕분에 OpenAI API 키도, 비용 청구서도 없이 Swift 3줄로 온디바이스 LLM을 호출할 수 있다. 첫인상을 정리해본다.

MAY 18, 2026 · 6 MIN
#foundation models#apple intelligence#온디바이스 llm
P_004 · SWIFT

서버 스펙 안 나왔을 때 클라 먼저 작업하는 법

백엔드 기다리느라 일정 밀리는 게 싫어서 만든 나름의 체크리스트. 나중에 뜯어고칠 비용을 0에 가깝게.

MAY 14, 2026 · 5 MIN
#swift#ios#architecture
P_005 · SWIFT

Swift 프로토콜에 옵셔널 property 넣을 뻔한 이야기

옵셔널 요구사항을 만들고 싶어지면 멈춰라. 십중팔구 프로토콜이 두 개여야 한다.

MAY 14, 2026 · 4 MIN
#swift#protocol#optional
P_006 · SWIFT

`final class` 상속 막혔을 때 컴포지션 써본 후기

final 막힌 클래스를 만났을 때, 격언만 외우다 놓친 진짜 답.

MAY 14, 2026 · 4 MIN
#swift#ios#uikit
P_007 · 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_008 · 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