iOS에서의 동시성 프로그래밍의 배경에 대해 알아보자
📖iOS에서 동시성 프로그래밍이 필요한 이유
네트워크 작업과 같은 오래 걸리는 작업을 메인 쓰레드에서 처리하면 앱의 반응성이 떨어질 수 있음 → 동시성 프로그래밍을 통해 시간이 오래 걸리는 작업을 서브 쓰레드에서 처리해 앱을 반응성을 유지하기 위함
1/60초보다 긴 작업을 메인 쓰레드에 준 상황
iOS의 메인 쓰레드는 1/60초에 한 번 화면을 다시 그림 (아이폰의 화면 주사율 : 60Hz) 즉, 1/60초보다 긴 작업을 메인 쓰레드에 준다면 해당 작업이 끝날 때까지 화면을 다시 그리지 못 하게 되므로 앱의 반응성이 떨어짐(앱이 버벅인다고 느껴질 수 있음)
📖그렇다면 iOS에서는 어떻게 작업을 분산시킬 수 있을까(작업을 어떻게 동시에 실행 처리할 수 있을까)?
작업을 대기행렬(Queue)에 넣기만 하면 운영체제가 알아서 여러 쓰레드로 나눠서 분산 처리를 함

- 직접적으로 쓰레드를 관리 X
📖그렇다면 어떻게 작업을 대기행렬(Queue)로 보낼까?
애플에서 제공하는 멀티 쓰레딩 처리를 쉽고 편하게 해주는 API인
GCD,NSOperation을 통해 보냄
NSOperation는 거의 쓰지도 않고 어렵기 때문에 왕고수가 되어서 다룰 것