Asynchronous Sequences 이전 섹션의 listPhotos(inGallery:) 함수는 배열의 모든 요소가 준비된 후 전체 배열을 한 번에 비동기식으로 반환합니다. 또 다른 접근 방식은 비동기 시퀀스(asynchronous sequence)를 사용하여 한 번에 하나의 컬렉션 요소를 대기하는 것입니다. 다음은 비동기 시퀀스를 반복(iterating)하는 방법입니다. import Foundation let handle = FileHandle.standardInput for try await line in handle.bytes.lines { print(line) } 위의 예는 일반적인 for-in 루프를 사용하는 대신 await 를for뒤에 씁니다. 비동기 함수 또는 메서드를 호출할 때와 마찬..
Defining and Calling Asynchronous Functions 비동기 함수 또는 비동기 메서드는 실행 도중 일시 중단될 수 있는 특수한 종류의 함수 또는 메서드입니다. 이는 완료될 때까지 실행되거나 오류를 발생시키거나 절대 return하지 않는 일반적인 동기화 함수 및 메서드와는 대조적입니다. 비동기 함수 또는 메서드는 여전히 이 세 가지 중 하나를 수행하지만, 무언가를 기다리고 있을 때 중간에 일시 중지할 수도 있습니다. 비동기 함수 또는 메서드의 바디 안에서 실행이 일시 중단될 수 있는 각 위치를 표시합니다. 함수 또는 메서드가 비동기임을 나타내려면 throws를 사용하여 던지기 함수를 표시하는 방법과 유사하게 매개 변수 뒤에 async 키워드를 씁니다. 함수 또는 메서드가 값을 반환..
Concurrency(1) - Concurrency란 Swift는 비동기 및 병렬 코드를 작성할 수 있도록 지원합니다. 비동기 코드는 한 번에 하나의 프로그램만 실행되지만 나중에 일시 중단했다가 다시 시작할 수 있습니다. 프로그램에서 코드를 일시 중단했다가 다시 시작하면 네트워크를 통해 데이터 가져오기 또는 파일 파싱과 같은 장기 실행 작업을 계속하면서 UI 업데이트와 같은 단기 작업을 계속 진행할 수 있습니다. 병렬 코드는 여러 코드 조각이 동시에 실행되는 것을 의미합니다. 예를 들어, 4코어 프로세서가 있는 컴퓨터는 4개의 코드 조각을 동시에 실행할 수 있으며 각 코어는 작업 중 하나를 수행합니다. 병렬 및 비동기 코드를 사용하는 프로그램은 한 번에 여러 작업을 수행합니다. 이 프로그램은 외부 시스템..
https://developer.apple.com/videos/play/wwdc2021/10132/?time=1135 Meet async/await in Swift - WWDC21 - Videos - Apple Developer Swift now supports asynchronous functions — a pattern commonly known as async/await. Discover how the new syntax can make your code... developer.apple.com 간단한 사용법만 정리했습니다. URLSession의 dataTask와 prepareThumbnail은 비동기적으로 동작합니다. 그래서 각각의 작업이 완료되고 나서 다음 작업이 진행되고, 작업이 실패할 경우 ..