🙋🏻UI 업데이트는 꼭 메인 스레드에서 진행되어야 합니다🙋🏻
그렇기에 우리는 수동으로 처리한다면 DispatchQueue.main.async와 같이 래핑하여 UI 업데이트를 다뤄줄 수 있었습니다.
Actor라는 개념이 나오고 MainActor를 통해 실제 이러한 별도 작업없이 항상 메인 큐에서 업데이트 될 수 있도록 자동으로 디스패치를 시켜주고 있습니다.
UILable이나 UIViewController의 선언을 보더라도 이젠 @MainActor 속성이 붙어 있는걸 확인할 수 있습니다.
즉, Swift Concurrency를 사용할 때 해당 클래스의 모든 속성과 메서드가 메인 큐에서 자동으로 설정 및 호출/접근 된다는 것을 의미합니다.
더이상의 수동적인 디스패칭은 필요없게 되었습니다🎉
당연하게도 커스텀한 UI 관련 클래스를 만들때도 충분히 요 @MainActor를 활용할 수 있습니다🕺🏻
이제 점점 백그라운드에서 UI 업데이트를 호출하는 실수는 줄어들겠네요😄