Sendable 프로토콜
비동기 컨텍스트에서 동작할 수 있도록 보장해주는 프로토콜
값 타입의 경우 자동으로 채택
레퍼런스인 클래스의 경우 채택해야 비동기 컨텍스트에서 데이터 경쟁 없이 동작하는 걸 컴파일러로부터 보장 받을 수 있음
클래스가 Sendable을 채택하려면?
아래 3가지를 따라야 함
- final 로 선언되어야 함
- 프로퍼티가 모두 Sendable을 채택해야 함
- 프로퍼티가 모두 let이어야 함 (불변이어야 한다는 뜻)
actor는 Sendable을 채택하고 있음
protocol Actor : AnyObject, [Sendable](<https://developer.apple.com/documentation/swift/sendable>)
Sendable을 채택할 수 있는 것들
- 값 타입
- mutable storage 가 없는 참조 타입
- 내부적으로 상태에 대한 액세스를 관리하는 참조 타입
- @Sendable로 표시된 함수 및 클로저
'📱 iOS > Swift Concurrency' 카테고리의 다른 글
[Swift Concurrency 11편] Main Actor (0) | 2025.02.26 |
---|---|
[Swift Concurrency 10편] Actor는 한글 키보드로 'ㅁㅊ색' 이란 걸 아시나요? (0) | 2025.02.26 |
[Swift Concurrency 8편] Task와 구조화된 동시성(= Structed Concurrency) (0) | 2025.02.26 |
[Swift Concurrency 7편] 비동기 호출에서의 스레드 제어권 (0) | 2025.02.26 |
[Swift Concurrency 6편] Swift Concurrency 등장 배경 (1) | 2025.02.26 |