@unchecked Sendable

2025. 5. 12. 21:47·iOS/Swift Concurrency
반응형

👋 들어가기 전

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


😀 소감 및 마무리

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

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

 


출처

반응형

'iOS > Swift Concurrency' 카테고리의 다른 글

@globalActor  (0) 2025.05.18
@preconcurrency  (0) 2025.05.12
@Sendable  (0) 2025.05.11
@MainActor  (0) 2025.05.08
Actor  (0) 2025.05.08
'iOS/Swift Concurrency' 카테고리의 다른 글
  • @globalActor
  • @preconcurrency
  • @Sendable
  • @MainActor
Hamp
Hamp
남들에게 보여주기 부끄러운 잡다한 글을 적어 나가는 자칭 기술 블로그입니다.
  • Hamp
    Hamp의 분리수거함
    Hamp
  • 전체
    오늘
    어제
    • 분류 전체보기 (337) N
      • CS (30)
        • 객체지향 (2)
        • Network (7)
        • OS (6)
        • 자료구조 (1)
        • LiveStreaming (3)
        • 이미지 (1)
        • 잡다한 질문 정리 (0)
        • Hardware (2)
        • 이론 (6)
        • 컴퓨터 그래픽스 (0)
      • Firebase (3)
      • Programing Langauge (41)
        • swift (34)
        • python (6)
        • Kotlin (1)
      • iOS (134)
        • UIKit (37)
        • Combine (1)
        • SwiftUI (34)
        • Framework (7)
        • Swift Concurrency (22)
        • Tuist (6)
        • Setting (11)
        • Modularization (1)
        • Instruments (6)
      • PS (59)
        • 프로그래머스 (24)
        • 백준 (13)
        • LeetCode (19)
        • 알고리즘 (3)
      • Git (18)
        • 명령어 (4)
        • 이론 (2)
        • hooks (1)
        • config (2)
        • action (7)
      • Shell Script (2)
      • Linux (6)
        • 명령어 (5)
      • Spring (21)
        • 어노테이션 (6)
        • 튜토리얼 (14)
      • CI-CD (4)
      • Android (0)
        • Jetpack Compose (0)
      • AI (19) N
        • 이론 (10)
        • MCP (1)
        • LangGraph (8) N
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    투포인터
    property
    AVFoundation
    GIT
    boostcamp
    Tuist
    dfs
    concurrency
    CS
    백준
    dispatch
    IOS
    SwiftUI
    protocol
    Spring
    lifecycle
    Swift
    dp
    UIKit
    프로그래머스
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
Hamp
@unchecked Sendable
상단으로

티스토리툴바