목록Swift (63)
study record
AsyncSequence 알아가기 AsyncSequence는 비동기적으로 요소들을 생산할 수 있는 sequence를 설명하는 protocol이다. Swift의 Sequence와 비슷하나, 차이점은 다음 요소를 위해 await 키워드를 붙여야 한다는 것이다. 예제에서의 note URLSession.data(for:delegate)는 Data를 리턴. URLSession.AsyncBytes는 URL request로부터 비동기적으로 바이트들을 준다. HTTP 프로토콜은 서버가 partial requests에 대한 허용성을 지원하는지를 정의하게 한다. 만약 서버가 지원하면, 응답에 대한 byte range를 리턴하는 것을 요청할 수 있다. 한 번에 전체 응답을 받는 것 대신에. 그래서 하나의 파일을 얻고자 요청..
async: 메서드가 비동기로 작동할 것임을 보여준다. 이 메서드가 결과를 리턴할 때까지 실행을 멈춘다. await: 코드가 실행을 멈출 수 있음을 보여준다. async 메서드가 리턴할 때까지 기다린다. Task: 비동기 작업의 단위. 작업이 끝나거나 취소되는 것을 기다릴 수 있다. 🧪 completion handler → async 메서드로 변경해보기 // escaping closure func fetchStatus(completion: @escaping (String) -> Void) { URLSession.shared.dataTask( with: URL(string: "")! ) { data, response, error in guard let data = data else { return } co..
큐에 작업들을 넣기 전에, 어떤 큐를 사용할 것이고 사용하기 위한 목적을 결정해야 한다. Dispatch queues는 직렬적으로 또는 병렬적으로 작업을 실행할 수 있다. 게다가, 만약 큐에 특별한 목적을 가진다면 큐의 속성들을 설정할 수 있다. 아래의 글을 통해 어떻게 dispatch queue를 만들고 사용을 위한 설정을 할 수 있는지를 보여준다. Getting the Global Concurrent Dispatch Queues concurrent dispatch queue는 병렬적으로 실행할 다양한 작업들을 가지고 있을 때 유용하다. concurrent queue는 여전히 선입선출로 작동하는 큐이다. 다만, concurrent queue는 이전 작업이 끝나기 전에 추가적 작업이 빠져나올 수 있다. ..
본 글은 해당 링크(공식 사이트) 글을 해석하여 정리한 글입니다. Grand Central Dispatch (GCD) dispatch queues는 테스크들을 수행하는 데에 강력한 툴이다. Dispatch queues는 호출자를 존중하며 비동기적으로나 동기적으로 코드의 블록들을 실행하게 한다. dispatch queues를 분리된 스레드에 수행하게끔 사용할 수 있다. dispatch queues의 장점은 사용하기에 단순하고 효율적이라는 것이다. 이 챕터에서는 dispatch queues에 소개와 어플리케이션에서 일반적인 테스크를 실행하고자 할 때 어떻게 사용하는지를 담고 있다. 만약 존재하는 스레드 코드를 dispatch queues로 바꾸고 싶다면, 추가적인 팁을 Migrating Away from T..