Swift
-
[Swift] @MainActor란?Swift 2024. 8. 18. 22:58
안녕하세요. 1000JI 입니다 :)프로젝트 코드를 보던 중 @MainActor라는 것을 보게 되어서..!!!궁금해서 블로그를 쓰게 되었습니다. MainActor에 대해 설명하기 앞서 기존 저희가 UI 업데이트를 어떤 스레드에서 돌렸었는지 기억나시나요?왜 당연한걸 물어..? 라고 생각하실 수도 있습니다...ㅎㅎ메인 스레드에서 돌렸었죠? 왜 그런 걸까요? 이 질문에 대답을 못 하실 수도 있을거라 생각해요!왜냐! 그냥 당연하게 메인스레드에서 도는거 아니야? 라고 생각이 드셨을 것 같아요(제가 그랬습니다). 이유를 살펴보겠습니다.첫 번째, UIKit은 메인 스레드에서 작동하도록 설계됨UIKit은 사용자 인터페이스(UI)와 관련된 작업을 메인 스레드에서 수행하도록 설계되었습니다.이는 Apple의 프레임워크에서..
-
[Swift] Actor란?Swift 2024. 8. 16. 01:02
안녕하세요. 1000JI 입니다!저번 Async, Await, Task에 이어서 Actor를 다루게 되었습니다. Actor.... 혹시 들어 본 적 있으신가요?Actor도 Swift Concurrency가 도입되면서 짠하고 나타난 하나의 타입입니다!왜 나타나게 되었을까요? 왜 Actor를 써야 할까? 먼저, Actor를 보기 전에 이전에 발생하고 있었던 주요 이슈가 뭐가 있었는지를 살펴보아야 합니다!비동기 처리를 하게 되면 문제가 되었던 점 중 하나가 무엇일까요? 바로바로 동시성 문제가 많이 거론 됩니다.Data Race, 즉 데이터 경합이라는 것이 발생 할 수 있습니다.데이터 경합이 무엇일까요? 데이터 경합(Data Race)두 개의 개별 스레드가 동시에 동일한 데이터에 액세스하거나 변경하려고 할 ..
-
[Swift] Async, Await, Task란?Swift 2024. 8. 14. 01:27
안녕하세요. 1000JI입니다 :)사실 저에겐 RxSwift를 그동안 계속 다룬 만큼 제일 익숙하기에 다른 비동기 처리에 대한 수요가 따로 없었습니다.하지만 현재 회사에서 개발하고 있는 프로젝트에서는 다루고 있는 상황입니다..!!!그래서!! 드디어 말로만 듣던... 제가 많이 활용해보지 못했던 Async, Await를 자세히 살펴보려고 합니다! Async, Await가 뭘까요?!저는 지금까지 RxSwift나 Escaping handler를 통해 비동기 처리를 했었는데요~!Swift 5.5(Swift Concurrency)를 통해 추가된 Concurrency Model로 더욱 편하게 비동기 처리를 해줄 수 있는 문법이라고 보시면 되겠습니다. 그럼 어떻게 더욱 편하게 비동기 처리를 해줄 수 있는 것 일까요?..