🍎 iOS/GCD 4

[iOS/GCD] 4. async/await (Swift 5.5 ~) (feat. vs Combine, RxSwift)

async/await이 나오게 된 배경 메인 스레드에서 다른 스레드로 작업을 보내고 -> 해당 스레드에서 다른 스레드로 작업을 보내고 .... 이런식으로 이어나가면서 completionHandler를 진행하게 되면, 콜백 지옥에 빠지게된다. func processImageData(completionHandler: (_ result: Image) -> Void) { loadWebResource("a.txt") { dataResource in loadWebresource("b.txt") { dataResource in decodeImage(dataResource, imageResource) { imageTmp ..... async/await를 도입하면? func processImageData() async ..

🍎 iOS/GCD 2023.07.24

[iOS/GCD] 3. GCD의 주의사항

주의해야 하는 사항 1. UI 관련한 작업은 반드시 메인 스레드로 보내줘야한다. (DispatchQueue.main.async) DispatchQueue.global().async { // 네트워크 통신 (데이터 다운로드) DispatchQueue.main.async { // UI와 관련된 작업 } } 2. 비동기 처리를 하는 함수에서는 return 문으로 반환하면 비동기적 실행으로 인해 nil을 return하므로, 탈출 클로저를 사용하여 결과값을 반환해야한다. (Apple에서는 이를 completion Handler라고 명칭함) func getImages(url: String, completionHandler: @escaping (UIImage?) -> Void) { let url = URL(strin..

🍎 iOS/GCD 2023.07.23

[iOS/GCD] 2. GCD의 개념 및 종류

Swift로 동시성 프로그래밍을 구현하는 방법은 GCD, Operaion, async/await이 있다. 여기서는 GCD, DispatchQueue에 대해 알아보도록 하겠다. (혹시 틀린 정보가 있으면 댓글로 알려주시면 감사하겠습니다!) Dispatch(=GCD)란? *공식문서 링크: https://developer.apple.com/documentation/dispatch - 멀티코어 하드웨어에서 코드가 동시에 실행되도록 자동으로! iOS에서 관리해주는 시스템 - GCD는 응용 프로그램 각각을 자동으로 효율적으로 자원을 사용하도록 분배해준다. DispatchQueue란? *공식문서 링크 : https://developer.apple.com/documentation/dispatch/dispatchqueu..

🍎 iOS/GCD 2023.03.10

[iOS/GCD] 1. 코어/스레드/프로세스, 직렬/병렬/동시, 동기/비동기

코어와 스레드, 프로세스 용어 정리 코어 : CPU의 핵심으로 CPU에서 실제로 일을 처리하는 본체 - 코어가 많다 = 작업을 처리해줄 친구가 많다. (알바생이 많다) - 코어는 한 번에 한 가지 일만 처리할 수 있음. 그러나 실제로는 싱글 코어를 가진 컴퓨터라도 음악을 들으며 문서를 작성하는 등 여러 작업을 동시에 처리할 수 있다. - 햄버거집에 알바생이 1명 있다고 가정해보면 (싱글코어), 치킨 햄버거, 불고기 햄버거, 치즈 햄버거를 동시에 만들고 있음을 볼 수 있다. 하지만 이것은 한 번에 만드는 것처럼 보이는 것이지, 사실은 일을 짧은 단위로 나누어서 하나씩 번갈아가면서 요리를 하는 것임 (이걸 운영체제 용어로 시분할! 이라고 함) - 각 햄버거의 빵을 올리고, 불고기를 굽고, 치즈를 올리고 ....

🍎 iOS/GCD 2023.03.10
반응형