본문 바로가기

iOS/Concurrency

(11)
Concurrency (2) Getting started With async/await 이전글 - Concurrency(1) Why Modern Concurrency? Modern Concurrency in Swift 를 읽고 간단 정리 Pre-async/await Asynchronyfunc fetchStatus(completion: @escaping (ServerStatus) -> Void) { URLSession.shared.dataTask( with: URL(string: "https://amazingserver.com/status")! ) { data, response, error in // Decoding, error handling etc completion(ServerStatus(data)) }.resume()}fetchSt..
Concurrency (1) Why Modern Swift Concurrency? Modern Concurrency in Swift 를 읽고 간단 정리 Modern Swift Concurrency의 등장 애플이 비동기 프레임워크에 대해 중요하게 발표한 마지막 시기는GCD(Grand Central Dispatch)가 나왔을 때다. 다만 이는 순수 Swift 코드가 아니라, Objective-C의 것을 빌려 쓴 것이다. Swift 5.5에서 부터 Swift 고유의 asynchronous, concurrent 코드를 작성할 수 있게 된다. Asynchronous와 Concurrent잠깐 간단하게 짚고 넘어가자면 아래와 같다. Synchronous (동기) ㄴ 작업이 순차적으로 실행 / 하나의 작업이 완료되기 전에 다른 작업을 시작하지 않음 Asynchronous(비동기)ㄴ 작업이 완료될 ..
swift docs - Concurrency Concurrency - swift docs 를 읽고 정리한 글 입니다. Swift는 구조화된 방식으로 비동기 및 병렬 코드를 작성할 수 있도록 bulit-in 지원합니다. 한 번에 한 개의 프로그램만 실행 될지라도 비동기 코드는 일시 중단되었다가 나중에 재개될 수 있습니다. 프로그램에서 코드를 일시 중단했다가 재개하면 장기 실행 작업(네트워크를 통해 데이터를 가져오거나 파일을 구문 분석하는 등)을 계속하면서 단기 작업(UI 업데이트 등)에서 계속 진전을 이룰 수 있습니다. 병렬 코드는 여러 코드가 동시에 실행되는 것을 의미합니다. 예를 들어 4코어 프로세서가 있는 컴퓨터는 4개의 코드를 동시에 실행할 수 있으며 각 코어가 하나의 작업을 수행합니다. 병렬 및 비동기 코드를 사용하는 프로그램은 한 번에 여..