#isolation vs @isolated(any)
·
iOS/Swift Concurrency
👋 들어가기 전https://hamp.tistory.com/212 Actor👋 들어가기 전먼저 간단한 선행 내용을 먼저 정리한 이후 엘런님 강의를 듣고 나서 다시 한번 더 내용을 채우러 오겠다.🏁 학습할 내용Actor란 무엇인가특징 및 동작방식어떻게 동기화 메커니hamp.tistory.com 이전 actor 포스팅 마지막 부분에서 우리는 nonisolated 키워드와 isolated키워드를 배웠고https://hamp.tistory.com/218 @globalActor👋 들어가기 전이번 포스팅은 글로벌 Actor라는 내용을 학습해보자.엑터를 공부한 이후, @MainActor를 공부했는데 , @MainActor처럼 쓸 수 있게 내가 커스텀으로 만들어낼 수 있는 방법이 있다.🏁 학습hamp.tist..
sending
·
iOS/Swift Concurrency
👋 들어가기 전오눌 학습할 내용은 Sending 키워드다. 이전에 배웠던 @Sendable과 생각보다 관련성이 있어 보인다. 이번에 확실히 짚고 넘어가자🏁 학습할 내용@Sendable이란sending이 등장한 계기sending이란@Sendable과 sending 정리🛫 @Sendable이란https://hamp.tistory.com/214 @Sendable👋 들어가기 전두번 째 attribute는 @Sendable이다. 아무래도 배우는 attribute들의 순서가 고민이 많았는데Conccurency의 가장 기본이 되는 Sendable attribute부터 살펴보자. 🏁 학습할 내용Sendable 프로토콜@Sehamp.tistory.com 이전에 작성한 내용을 정리해보면 @Sendable은 다음..
nonisolated(unsafe)
·
iOS/Swift Concurrency
👋 들어가기 전이번에 학습해볼 내용은 nonisolated(unsafe) 키워드다.이전에 actor 포스티에서 nonisolated 키워드는 알아봤다. 간단히 정리하면 현재 격리 주체인 actor안에 코드가 있지만actor의 격리 범위를 벗어나고 싶을 때 사용하는 키워드였다.🏁 학습할 내용unsafe의미위험한 형태가 왜 존재할까?어디에 쓸까?🦺 unsafe가 왜 붙었을까?여기서 하나 짚고 넘어갸야되는 것은 nonisolated 키워드는 격리 범위를 벗어난다는 의미하는 것즉, 외부에서 접근하는 형태로 사용한다는 것이다. 이게 컴파일 타임에 격리 상태 체크를 무시한다는 것이 아니다.즉, 외부처럼 접근할 것이면 async / await으로 잠재적 중단 포인트를 만들어놔야한다. 여기서 unsafe는 컴파일..
@globalActor
·
iOS/Swift Concurrency
👋 들어가기 전이번 포스팅은 글로벌 Actor라는 내용을 학습해보자.엑터를 공부한 이후, @MainActor를 공부했는데 , @MainActor처럼 쓸 수 있게 내가 커스텀으로 만들어낼 수 있는 방법이 있다.🏁 학습할 내용글로벌 엑터란🌐 Global 엑터란⭐️ 정의앱 전반적으로 사용되는 엑터 타입MainActor도 글로벌 엑터의 한 종류이다. 🧰 사용법 @globalActor를 actor선언 시 붙혀준다.static 형태의 shared 변수를 만들어준다.@globalActoractor MyGlobalActor { static let shared: MyGlobalActor = MyGlobalActor() ...}@MyGlobalActorfinal class A { var arr: [Int] =..
@preconcurrency
·
iOS/Swift Concurrency
👋 들어가기 전이번에 학습할 속성은 @preconcurrency다.많이 무겁지 않으니 바로 시작해보자🏁 학습할 내용@preconcurrency란?언제 사용할까?@unchecked Sendable과 차이🏁 @preconcurrency란📋 정의Sendable 체크 이전에 작성된 코드이며, 동시성 안전성을 보장하지 않아도 경고 없이 사용할 수 있다.❓언제 사용할까? Swift6 도입하면서 동시성에 대한 엄격한 검사(strict concurrency)가 컴파일 타임에 진행된다. 이때 이전 부터 운영된 서비스들의 API를 모두 Swift6에 맞게 바꾸게 된다면그 비용을 한번에 부담하기에는 개발자 입장이 매우 곤란하다. 이 때 @preconcurrency는 다음과 같은 2개의 입장을 표현한다. 1. 옛날 코..
@unchecked Sendable
·
iOS/Swift Concurrency
👋 들어가기 전지난 포스팅에서 Sendable을 배웠으니 이어지는 주제로 @unchecked Sendable을 학습하자 🏁 학습할 내용@unchecked Sendable이란예제언제 사용할까?❌ @unchcked Sendable⭐️ 정의이름에서 너무 쉽게 유추할 수 있다.컴파일러 너 Sendable 체크하지마!⌨️ 예제암묵적으로 Sendable이 아닌 mutable property가 있는 클래스를 만들고비동기 context안에 밀어넣어보자. 오류가 발생했다. 내용은 다음과 같다.Type 'NotSafeClass' does not conform to the 'Sendable' protocol 컴파일러가 동시성 환경에서 문제가 될 수 있는 부분의 위험을 에러 형태로 전달하고 있다. 만약 여기서 @unch..