iOS에서의 동시성 프로그래밍의 배경에 대해 알아보자

📖iOS에서 동시성 프로그래밍이 필요한 이유

네트워크 작업과 같은 오래 걸리는 작업을 메인 쓰레드에서 처리하면 앱의 반응성이 떨어질 수 있음 → 동시성 프로그래밍을 통해 시간이 오래 걸리는 작업을 서브 쓰레드에서 처리해 앱을 반응성을 유지하기 위함

1/60초보다 긴 작업을 메인 쓰레드에 준 상황

iOS의 메인 쓰레드는 1/60초에 한 번 화면을 다시 그림 (아이폰의 화면 주사율 : 60Hz) 즉, 1/60초보다 긴 작업을 메인 쓰레드에 준다면 해당 작업이 끝날 때까지 화면을 다시 그리지 못 하게 되므로 앱의 반응성이 떨어짐(앱이 버벅인다고 느껴질 수 있음)

📖그렇다면 iOS에서는 어떻게 작업을 분산시킬 수 있을까(작업을 어떻게 동시에 실행 처리할 수 있을까)?

작업을 대기행렬(Queue)에 넣기만 하면 운영체제가 알아서 여러 쓰레드로 나눠서 분산 처리를 함

  • 직접적으로 쓰레드를 관리 X

📖그렇다면 어떻게 작업을 대기행렬(Queue)로 보낼까?

애플에서 제공하는 멀티 쓰레딩 처리를 쉽고 편하게 해주는 API인 GCD, NSOperation을 통해 보냄

  • NSOperation는 거의 쓰지도 않고 어렵기 때문에 왕고수가 되어서 다룰 것

위 내용을 바탕으로 다음 노트에서 GCD에 대해 자세히 알아보자