안녕하세요. 오늘은 가볍게 SwiftUI의 View의 구현부에 명시되어있는 어떤 개념에 대해서 가볍게 보려고 해요. 바로 메인스레드에서의 동작을 보장시켜주는 MainActor에 대해서입니다. Swift Concurrency, MainActor의 개념과 사용방식, MainActor가 사용되는 케이스와 더불어 async await 메서드를 함께 사용하는 몇가지 케이스에서 메인스레드의 동작유무를 보도록 할게요. SwiftUI, View protocol에 정의되어있는 @MainActorView에 대한 구현부에요. 아래 body를 보시면, @MainActor가 정의되어있는데요. @MainActor가 정의되어있는 영역 내의 코드는 메인스레드에서의 동작을 보장해요. 다만 그 안에 부분적으로 DispatchQueue...
iOS Swift Concurrency, async await 방식의 이점과 사용 간에 생길 수 있는 고민 iOS13 부터 활용 가능한 async await, actor 등의 개념을 잘 활용하면 data racing 문제를 해결하고, 많은 thread의 생성을 야기할 수 있는 context switching을 최소화 할 수 있습니다. 또한, callback closure의 중첩으로 인한 콜벡지옥 등으로 인한 나쁜 가독성을 개선할 수도 있습니다. async await 을 사용할 때에는 일반적으로 함수 반환 타입 앞에 async, async throws를 사용하고, 호출할때에는 Task { ... }, .task { ... } 블럭 내에 await, try await 키워드와 함께 호출하여 사용하게 되는데요..
Swift Concurrency를 API 요청 로직에 적용할때, 단일 요청뿐만 아니라 다수의 API 요청을 수행해야할 때가 있습니다. 이때 모든 API 요청을 Concurrent하게 진행하고, feeding(요청 결과를 실제 수신하는 과정)을 순차적으로 받는 방법을 사용하면 더욱 효율적인 비동기 작업을 수행할 수 있습니다. 이러한 것을 가능하게 해주는 개념 중 하나인 Structured Concurrency, async let에 대해서 코드를 함께 작성해보면서 알아보겠습니다. structured concurrency, async let 사용하여 다수의 API 요청 concurrent하게 처리하기 // try await을 사용하였기에 equifaxUrl로부터 결과 값을 수신받을때까지 suspend 된다. ..
- Total
- Today
- Yesterday
- swift reduce
- 프로토콜
- CoreML
- 스위프트
- createML
- ios
- 프로그래머스swift
- swift 기초
- SwiftUI
- 김프매매
- 컬렉션
- Protocol
- 자연어처리
- 알고리즘
- Collection
- uikit
- swift문제
- 백준알고리즘
- 프로그래머스
- 알고리즘문제
- swift알고리즘
- 백준swift
- swift concurrency
- swift 문자열
- swift string
- 개발자문서
- swift
- Swift 알고리즘
- swift언어
- 부스트코스
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |