목록 보기
Swift Concurrency 2탄: Sendable
프론트엔드

Swift Concurrency 2탄: Sendable

딜라이트룸
딜라이트룸
2025년 2월 14일

두줄요약

Swift Concurrency에서 데이터 레이스를 막기 위한 `Sendable`의 개념과 사용법을 설명했습니다. 값 타입, actor, 락 기반 동기화, `@unchecked Sendable`의 주의점까지 실전 관점에서 정리했습니다.

핵심 내용

  • Swift Concurrency 환경에서 Task 간 데이터 공유 시 데이터 레이스 방지를 위한 Sendable 프로토콜 개념 정리
  • 값 타입은 기본적으로 Sendable이며, 참조 타입 클래스는 불변성 확보나 actor, 락, 큐 동기화가 필요
  • @unchecked Sendable은 컴파일러 검사를 우회하므로 개발자 책임의 안전성 보장 전제
  • static 속성, 싱글톤, 외부 호출 시 await 필요성 등 실전 사용 포인트 설명

적용해볼 점

  • 클래스 공유 데이터는 actor 우선 검토
  • 기존 동기화 코드에는 NSLock 또는 DispatchQueue.sync 적용 가능 여부 점검
  • Sendable 경고가 발생하는 지점은 데이터 레이스 가능성으로 보고 수정

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...