[GCD] 디스패치 큐: FIFO, 우선순위 및 큐 유... 노트

[GCD] 디스패치 큐: FIFO, 우선순위 및 큐 유형

DispatchQueue는 GCD에서 작업이 전송되는 객체로, 스레드 대신 클로저를 받습니다. 이 큐는 코드 블록을 언제, 어떻게 실행할지 관리합니다. FIFO(First-In, First-Out) 원칙에 따라 작동하여, 작업은 디스패치된 순서대로 시작되지만 반드시 완료되는 순서대로 시작되는 것은 아닙니다. 시스템은 각 디스패치된 작업에 Quality of Service(QoS)라는 우선순위를 할당합니다. 이 우선순위는 즉각적인 UI 업데이트를 위한 .userInteractive부터 인지되지 않는 작업을 위한 .background까지 다양합니다. 우선순위가 높은 작업은 더 많은 시스템 리소스를 받으며, 우선순위를 잘못 사용하면 성능이 저하될 수 있습니다. GCD는 DispatchQueue를 얻는 세 가지 방법을 제공합니다: UI 스레드에 연결된 직렬 메인 큐, 각 QoS 레벨에 대한 시스템 제공 동시 전역 큐, 그리고 개발자가 생성한 사용자 정의 큐. 사용자 정의 큐는 기본적으로 직렬이지만 동시적으로 만들 수 있습니다. 메인 큐는 모든 UI 관련 작업에 중요합니다. 전역 큐는 시스템에서 공유 및 관리되며, 각 QoS에 대한 전용 큐가 있습니다. 사용자 정의 큐를 통해 개발자는 자신만의 직렬 또는 동시 작업 실행 환경을 정의할 수 있습니다. 사용자 정의 큐의 레이블은 디버깅 목적으로만 사용됩니다. 향후 기사에서는 직렬 및 동시 큐에서의 동기 대 비동기 디스패치를 탐구할 것입니다.