일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Physical Audio
- Mac
- Reality Composer
- Object Capture
- detent
- NSUserActivity
- App Clip
- Hand Action Detect
- CoreML
- swiftUI
- AR Quick Look
- SF Symbols
- Xcode Cloud
- profile
- ProRAW
- WWDC 2021
- concurrency
- User Enrollment
- AVFoundation
- METAL
- async
- SWiFT
- DriverKit
- SF Symbols 3.0
- actor
- MDM
- DooC
- AppleEvent
- Hand Pose Detect
- Xcode Organizer
- Today
- Total
목록SWiFT (13)
nyancoder

원본 영상: https://developer.apple.com/videos/play/wwdc2021/10058/ Async Sequence 비동기로 동작한다는 점을 제외하면 Sequence와 동일합니다. 예외를 던질 수 있습니다. Sequence가 끝나거나 오류가 발생할 수 있습니다. 기존 Sequence와 동일하게 for문에서 break, continue를 사용할 수 있습니다. Iterating a AsyncSequence Async Sequence의 for 문 사용은 기존 Sequence의 for문 사용과 거의 동일합니다. 차이점은 iterator에서 다음 값을 받아올 때 비동기로 받아온다는 점입니다. for try 구문을 사용한 경우 do - catch 문을 통해서 예외 처리를 할 수 있습니다. 전..

원본 영상: https://developer.apple.com/videos/play/wwdc2021/10254/ 이 장에서는 Swift 동시성 모델에 대한 이해와 성능 향상을 위한 방법에 대해 알아보겠습니다. Threading Model 많은 양의 데이터를 비동기로 업데이트하는 코드는 수많은 스레드를 생성할 수 있습니다. CPU 코어의 개수를 넘는 스레드는 성능 문제를 일으킵니다. 많은 스레드는 각각의 메모리 공간을 가지고 있어야 하기 때문에 메모리 오버헤드를 가집니다. 많은 스레드가 생성되면 많은 context switching이 발생하므로 CPU가 비효율 적으로 동작합니다. Concurrency in Swift Swift의 async/await는 매번 새 스레드를 생성하지 않기 때문에 Context ..

원본 영상: https://developer.apple.com/videos/play/wwdc2021/10132/ 이 장에서는 Swift에서 새로 지원되는 async/await 구문의 활용에 대해서 알아봅니다. 기존 방식의 문제점 예외가 발생하거나 실패 시에 completion 블록을 호출해 주는 것을 빼먹기가 쉽습니다. completion 호출을 함수가 끝나는 모든 지점에 넣어야 해서 코드가 복잡해집니다. Error?를 전달하는 대신 표준 라이브러리의 Result를 사용할 수 있지만 코드가 살짝 길어지고 약간 안정성이 더해질 뿐 근본적으로는 큰 차이가 없습니다. Async / await 함수에 async 키워드를 추가하여 비동기로 호출되는 함수임을 알릴 수 있습니다. completion블록을 전달하지 않..

원본 영상: https://developer.apple.com/videos/play/wwdc2021/10133/ 이 장에서는 Swift에서 새로 지원되는 Actor의 필요성과 활용에 대해서 알아봅니다. 기존 방식의 문제점 둘 이상의 스레드에서 동일 데이터에 접근할 때, 동시성 안정성이 보장되지 않아 예상하지 못한 결과를 얻을 수 있습니다. 기존에 이러한 문제를 컴파일 단계에서 회피하기 위한 수단으로 value타입을 사용하는 방법도 있습니다. 이 이외에 여러 스레드에서 동시에 접근되어야 하는 데이터가 손상되지 않도록 하기 위해서 아래의 방법을 사용할 수 있지만, 컴파일 단계에서 검증하는데 어려움이 있는 경우가 있었습니다. Atomic Lock Serial dispatch queues Actor Actor는..

원본 영상: https://developer.apple.com/videos/play/wwdc2021/10134/ 이 장에서는 Swift에서 새로 지원되는 구조화된 동시성 프로그래밍에 대해서 알아봅니다. 기존 방식의 문제점 위와 같은 기존의 비동기 작업을 처리하는 코드가 있을 때 겪을 수 있는 어려움은 다음과 같습니다. try - catch와 같은 기존의 예외처리 방식을 사용할 수 없습니다. for를 사용한 반복문을 사용할 수 없습니다. 1. Async Let 위와 같이 변경된 방식에서는 다음의 장점을 얻을 수 있습니다. 함수에 async thorws 키워드를 사용해 기존의 try - catch 예외처리 방식을 사용할 수 있습니다. Task를 통해 작업을 병렬로 수행할 수 있으며, 발생할 수 있는 버그를 ..