actor
-
[Swift] Sendable 이해하기Swift 2025. 2. 11. 20:29
Sendable은 data races의 위험 없는 thread-safe 한 타입임을 보장하는 protocol 입니다.Sendable을 따른다는 건, 동시성 걱정 없이 전달할 수 있다는 걸 의미합니다.따라서 actor의 메서드 파라미터로도 전달할 수 있습니다.Swift6 부터는 컴파일 단계에서 동시성이 필요한 경우 Sendable을 체크해서 검증한다고 합니다.예를 들어, Task를 만들 때 공유 데이터가 Sendable을 준수하지 않으면 컴파일 에러를 발생시킵니다. 아래 4가지는 안전하게 파라미터로 전달할 수 있습니다. 즉, Sendable 합니다.1. 값 타입 (Value types)struct나 enum은 내부 변수까지 모두 Sendable을 준수하는 값들로만 구성되어 있다면 Sendable 을 채택할..
-
[Swift] Actor 이해하기Swift 2025. 2. 11. 18:35
Actor란 Data race 문제를 방지하기 위해 도입된 Reference Type 입니다.내부 상태를 보호해서 data race를 방지하고,내부적으로 직렬 실행을 보장해서 동시에 여러 작업이 실행되지 않도록 합니다.class와 마찬가지로 참조 타입이지만 상속은 지원하지 않습니다. Actor가 유용한 대표적인 예시를 하나 살펴보겠습니다.바로 은행 시스템입니다. 은행 계좌에서 안정성이 왜 중요한지는 굳이 설명하지 않아도 되겠죠 ?actor BankAccount { let accountNumber: Int var balance: Double init(accountNumber: Int, initialDeposit: Double) { self.accountNumber = accou..