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 붙여 컴파일러가 자동 검사를 생략하도록 지시할  있다,


😀 소감 및 마무리

흠.. 현재 내 수준으로는 많이 사용할 일은 없지만, 미래에 내 코드에 스레드 안전함을 자신한다면

한번쯤은 컴파일러에게 도전장을 내밀 수 있지 않을까??

 


출처

반응형