sendable 2

Swift Concurrency #6 - Data Race 제거하기

WWDC22: Eliminate data races using Swift Concurrency | Apple 우선 위 영상에서 예측하기 어려운 동시성(Concurrency)의 세계를 바다에 비유하여 설명한다.⛵️ Task (배): 바다를 항해하는 배로, 독립적으로 자신의 할 일을 수행.🏝️ Actor (섬): 바다 위 고립된 섬으로, 한 번에 하나의 배(Task)만 접근할 수 있는 안전한 데이터 보관소.🍍 Value Type (파인애플): 복사해서 다른 배로 넘겨줄 수 있는 안전한 데이터 구조체.🐓 Reference Type (닭): 복사본이 아닌 원본 참조를 공유하게 되어 혼란(Data Race)을 유발할 수 있는 클래스 객체. Task와 데이터 격리 (Task Isolation)Task는 독립적..

Swift 2026.03.02

Swift Concurrency #4 - Actor로 Mutable State 보호하기

WWDC21: Protect mutable state with Swift actors | Apple동시성 프로그래밍의 어려움Data Race란?2개 이상의 스레드에서 동시에 같은 데이터에 접근할 때, 최소 하나 이상의 쓰기(Write) 작업이 발생하면 생기는 동시성 문제. Data Race는 타이밍에 따라 결과가 달라지는 특성이 있어 디버깅이 매우 어렵다.코드로 예를 들면 아래와 같고, 상황에 따라 각 print문에서 1/2 혹은 1/1 혹은 2/2 가 프린트 될 수 있다.class Counter { var value = 0 func increment() -> Int { value = value + 1 // read & write return value }}let counter = Counter()..

Swift 2026.02.24