애플, 스위프트 언어에 액터 모델 도입 제안 - CIO Korea

생성일
Mar 22, 2021 12:29 PM
언어
Swift
분야
URL
 
Paul Krill | InfoWorld
애플이 병행 프로그래밍에서의 데이터 레이스 및 여타 일반적인 버그를 예방하기 위해 스위프트에 액터를 추가하는 제안을 발표했다.
애플이 깃허브에 액티브 리뷰 상태로 게시한 이 제안은 액터 모델이 데이터 레이스 및 여타 일반적인 동시성 버그를 정적으로 탐지하는 동시에 공유된 가변 상태를 사용할 수 있도록 해주는 것을 골자로 한다.
notion imagenotion image
ⓒGetty Images Bank
(actor라는 키워드를 통해 도입된) 액터는 이 가변 상태에 대한 액세스를 보호해주는 참조 유형이다. 메시지에 대한 응답으로, 액터는 로컬에서 결정을 내리거나, 더 많은 메시지를 보내거나, 더 많은 액터를 생성하거나, 수신된 다음 메시지에 어떻게 응답할지 결정할 수 있다. 액터들은 내부 상태를 변경할 수 있지만 메시지를 통해서만 간접적으로 서로에게 영향을 미친다. 이로써 잠금 기반(lock-based)으로 동기화할 필요성을 없애준다.
지난해 가을 발표된 스위프트 언어의 동시성 로드맵에서는 액터와 액터 분리에 관한 제안이 발표된 바 있다. 이번 제안에서는 동시성 작업을 도입하고, 함수와 클로저에 대한 데이터 레이스 보안을 제공한다. 이 모델은 병렬 맵과 동시성 콜백 패턴을 포함한 일부 설계 패턴에 적합하지만 클로저에 의해 캡처된 상태에서만 작동한다.
스위프트는 프로그램 전반에서 공유되는 가변 상태 선언에 사용되는 메커니즘을 제공하는 클래스를 포함하긴 하지만, 클래스는 동시성 프로그램 내에서는 사용하기가 어렵다고 개발팀은 전했다. 이 액터 모델 제안은 3월 29일까지 검토될 예정이다. 검토 프로세스는 3월 15일에 시작됐다. ciokr@idg.co.kr
notion imagenotion image