thread
-
[iOS] - GCD(Grand Central Dispatch): 비동기, 병렬 처리, 스레드 관리iOS/iOS 2025. 5. 19. 13:04
Swift로 iOS 앱을 개발하다 보면 DispatchQueue, async, global() 같은 GCD 관련 코드를 자주 마주친다.하지만 그 내부에서 어떤 일이 벌어지고 있는지는 단순히 "비동기 처리"라고만 알고 넘어가기 쉽다.이번 포스트에서는 GCD의 작동 원리부터 멀티코어, 컨텍스트 스위칭, 스레드 풀, TCB까지 CS 관점에서 가장 깊이 있게 정리해보겠다.📌 GCD란?GCD(Grand Central Dispatch)는 Apple이 제공하는 C 기반의 멀티코어 병렬 처리 저수준 API다.✅ 주요 특징스레드 풀 기반의 경량 비동기 처리멀티코어 활용 최적화비동기 + 병렬 처리 모두 가능스레드 직접 생성 없이 자동으로 최적화된 실행🧱 기본 구조: Dispatch Queue큐 종류설명Serial Qu..
-
[iOS] - GCD를 알아야하는 이유(1/4)iOS/iOS 2024. 3. 16. 14:13
오늘은 최근에 했던 컴퓨터구조 스터디를 기반으로 포스팅을 해보겠다. 스터디의 내용은 메인스레드에 관한 내용이였고, 그중 swift에서 사용하는 GCD를 자세하게 공부했다. 자 한번 가보자 메인스레드란? 프로그램이 시작될때 기본적으로 실행되는 스레드이다. 우리가 작성한 코드는 빌드되어 앱에서 실행되고, 앱의 전체적인 생명주기 제어와 여러 이벤트를 실행시키는 역할을 한다. iOS에선 메인스레드는 사용자의 UI를 처리하거나 입력을 받는 등의 처리는 모두 메인스레드에서 진행되는데, 그 이유는 일관성을 유지하기 위해서라고 생각한다. 만약 여러 스레드에서 동시에 UI에 관한 작업이 실행될 경우 각 컴포넌트 혹은 그보다 더 작은 단위로 따로따로 작동해 시각적인 혼란이 올 것이다. 간혹 코드를 짜다보면 이런 경고가 뜰..