DispatchQueue 객체를 만들 때에나 Async 함수를 실행시킬 때 서비스 품질을 설정할 수 있다.
서비스 품질(QoS)는 비동기함수 처리가 되면서 비동기 함수의 우선순위를 어떤 것을 먼저할지에 대한 속성이다.
userInteractive 속성은 거의 즉시 일어나는 함수에 대해 설정하는 값이고,
유저와 직접적인 인터렉티브(UI 업데이트, 애니메이션, UI반응 관련)에 관련한 함수를 처리할 때에 주로 쓰인다.
userinitiated 속성은 몇 초내에 처리되야할 함수에 대한 설정값이다.
유저가 즉시 필요하긴 하지만, 비동기적으로 처리해야하는 작업 (ex. 앱 내에서 pdf 파일을 여는 것과 같은)을 처리할 때에 쓰인다.
default 속성은 일반적인 작업을 처리할 때 쓰이는 속성이다.
utility 속성은 몇 초에서 몇 분 걸리는 함수를 설정하는 값이고,
보통 Progress Indicator와 함께 길게 실행되는 작업, 계산, IO, Networking, 지속적인 데이터 feeds 관련 일을 처리할 때에 쓰인다.
background 속성은 속도보다는 에너지 효율성 중시하고 몇 분 이상 걸리는 작업을 처리하는 값이다.
유저가 직접적으로 인지하지 않고(시간이 안 중요한) 작업, 데이터 미리가져오기, 데이터베이스 유지하는 작업에 쓰인다.
실무에서 iOS Concurrency에 대한 공부가 필요했는데, 마침 인프런에서 강의가 있어 도움이 되고 있다.
비동기처리 부분이 너무 어려운데, 강의를 만들어주신 분께 감사하다.
https://www.inflearn.com/course/iOS-Concurrency-GCD-Operation/dashboard
'iOS > 강의, 고찰' 카테고리의 다른 글
[Objective-C, iOS] Objective-C 헤더와 m 파일에 대한 이해 (0) | 2023.03.20 |
---|---|
[번역] 미디어 데이터 비동기 호출 (0) | 2022.12.06 |
[iOS, Swift] 메인 쓰레드 글로벌 쓰레드 생각 (0) | 2022.11.16 |
[iOS, Swift] 동시성 프로그래밍 작성 시 생길 수 있는 문제 (0) | 2022.11.01 |
[iOS, Swift] GCD 사용 시 주의점 (0) | 2022.11.01 |