Daily iOS
SwiftUI

SwiftUI 비동기 MainActor 상태

SwiftUI 주문 목록 ViewModel이 async API를 호출한 뒤 결과로 화면 상태를 바꿉니다. Swift 6 strict concurrency에서 이 ViewModel의 어느 부분을 @MainActor로 격리하겠습니까?

면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

프로퍼티 몇 개만 고르지 않고 @Observable ViewModel 클래스 전체에 @MainActor를 붙인다. 화면 상태 프로퍼티와 그걸 고치는 메서드가 모두 메인 액터에서만 돌게 되고, 네트워크 호출은 await로 다른 실행자에 넘겼다가 응답이 오면 다시 메인에서 재개되므로 그 뒤에 상태를 바꾸면 안전하다.

받은 질문 공유