Swift Concurrency와 더불어 actor라는 새로운 유형에 대해 다뤄봤습니다🙋🏻
기본적으로 actor는 기존 class 타입과 거의 유사하나 두가지가 다릅니다.
1️⃣ 해당 프로퍼티 및 메서드에 대해 모든 액세스를 자동으로 직렬화 하기에 지정된 시점에 하나의 호출자만 액터와 직접 상호 작용할 수 있다.
2️⃣ 실제로 클래스가 아니기에 서브클래싱을 지원하지 않는다.
특히 1번의 다른점이 모든 변화가 차례로 순차적으로 진행되기에 Race Condition 즉, 데이터 경합을 피할 수 있습니다.
기존 class를 사용할 때 DispatchQueue와 클로저를 적절히 사용하며 데이터 경합을 피하는 구성을 가져가는데 이스케이핑 클로저가 많아질수록 코드가 복잡해집니다.
이러한 단점을 actor를 통해 피할 수 있기에 Swift Concurrency에서 특히 잘 활용 될 수 있습니다⭐️