
프론트엔드
Swift Concurrency 2탄: Sendable
두줄요약
Swift Concurrency에서 데이터 레이스를 막기 위한 `Sendable`의 개념과 사용법을 설명했습니다. 값 타입, actor, 락 기반 동기화, `@unchecked Sendable`의 주의점까지 실전 관점에서 정리했습니다.
핵심 내용
- Swift Concurrency 환경에서 Task 간 데이터 공유 시 데이터 레이스 방지를 위한
Sendable프로토콜 개념 정리 - 값 타입은 기본적으로
Sendable이며, 참조 타입 클래스는 불변성 확보나 actor, 락, 큐 동기화가 필요 @unchecked Sendable은 컴파일러 검사를 우회하므로 개발자 책임의 안전성 보장 전제- static 속성, 싱글톤, 외부 호출 시
await필요성 등 실전 사용 포인트 설명
적용해볼 점
- 클래스 공유 데이터는 actor 우선 검토
- 기존 동기화 코드에는
NSLock또는DispatchQueue.sync적용 가능 여부 점검 Sendable경고가 발생하는 지점은 데이터 레이스 가능성으로 보고 수정
