iOS/Swift Concurrency
@unchecked Sendable
Hamp
2025. 5. 12. 21:47
반응형

👋 들어가기 전
지난 포스팅에서 Sendable을 배웠으니 이어지는 주제로 @unchecked Sendable을 학습하자
🏁 학습할 내용
- @unchecked Sendable이란
- 예제
- 언제 사용할까?
❌ @unchcked Sendable
⭐️ 정의
이름에서 너무 쉽게 유추할 수 있다.
컴파일러 너 Sendable 체크하지마!
⌨️ 예제
암묵적으로 Sendable이 아닌 mutable property가 있는 클래스를 만들고
비동기 context안에 밀어넣어보자.

오류가 발생했다. 내용은 다음과 같다.
Type 'NotSafeClass' does not conform to the 'Sendable' protocol
컴파일러가 동시성 환경에서 문제가 될 수 있는 부분의 위험을 에러 형태로 전달하고 있다.
만약 여기서 @unchecked Sendable을 붙혀놓으면 어떨까

에러가 사라진 것을 확인할 수 있다.
❓언제 사용할까?
@Sendable을 내가 스스로가 보장할 때 사용한다.
내부 구현이 스레드 안전하다면. 이럴 때는 개발자가 해당 타입이 Sendable임을 컴파일러에게
명시할 수 있지만, @unchecked를 붙여 컴파일러가 자동 검사를 생략하도록 지시할 수 있다,
😀 소감 및 마무리
흠.. 현재 내 수준으로는 많이 사용할 일은 없지만, 미래에 내 코드에 스레드 안전함을 자신한다면
한번쯤은 컴파일러에게 도전장을 내밀 수 있지 않을까??

출처
반응형