본문 바로가기

iOS/Combine3

[iOS/Combine] 스레드 작업처리 방식과 큐의 작업 분산방식(Sync vs Async / serial vs Concurrent) 앞선 포스팅에서 미처 다루지 못한 내용부터 시작해볼까요? DispatchQueue 란 키워드를 활용해, 큐(Queue)는 스레드에 작업을 분산시키게 됩니다. 그렇다면, ① 큐(Queue)가 작업을 스레드에 분산시키는 방식 과 ② 각각의 스레드(Thread)가 작업을 처리하는 방식 에 대해 코드 예시를 통해 살펴보면서, 궁극적으로 동기/비동기 프로그래밍에 대한 내용도 함께 알아보도록 하겠습니다. [참고링크] - 동시성 프로그래밍, 스레드와 큐 (https://lena-chamna.netlify.app/post/concurrency_programming_thread_and_queue/) GCD(Grand Central Dispatch)와 큐(Queue)의 종류 개발자는 큐(Queue)를 만들며, GCD는 스.. 2023. 5. 8.
[iOS/Combine] 동시성 프로그래밍의 필요성과 Queue(큐)의 역할 CPU, 코어, 그리고 프로세스와 스레드의 개념을 살펴본 포스팅의 중요한 키워드와 개념을 한번 더 되짚고 넘어가자면 다음과 같습니다. 컴퓨터 뇌 역할을 담당하는 하드웨어, CPU는 2개의 작업 처리 방식을 가지고 있습니다. ① 다수의 코어(Core)를 활용한 병렬적(Parallelism) 작업 ➟ 여러개의 코어를 중심으로 멀티 프로세스, 멀티 스레드를 통해 병렬적 작업을 실행 ② 프로세스를 갈아 가며, 작업하는 동시적(Concurrency) 작업 ➟ 마치 '동시에 실행되는 것 처럼' 보이도록 프로세스를 번갈아 실행하는 작업 ➟ 프로세스를 번갈아 매우 빠르게 처리하므로, 마치 동시(찰나)에 진행되는 것 처럼 보임 하지만, 여기서 한가지 의문점이 발생할 수 있는데 말입니다.. 다수의 코어와 스레드(멀티 .. 2023. 4. 10.
[iOS/Combine] CPU와 코어, 그리고 프로세스와 스레드의 개념 동기, 비동기, 동시성 프로그래밍, 스레드, 큐.. 프로그래밍을 학습하는 과정에서 느닷없이 마주치게 되는 익숙한 용어지요? 하지만, 프로그래밍을 언어(문법) ➟ 개발 프레임워크(UIKit, SwiftUI) 순서로 접한 저로서는 막상 두렵고, 어렵기만 한 해당 용어와 개념을 접근하기엔 상당히 부침이 있었습니다. (🫣 언제 써야되는거고, 왜 써야하는거지?) 사실, 바로 Combine을 살펴보고자 했는데.. 관련된 CS 기본 개념에 대한 이해가 필요할 것 같아 아래와 같은 주제로 3회차에 걸친 포스팅을 통해 확실하게 짚고 넘어가볼까 합니다. 1차 : CPU와 코어, 프로세스와 스레드 2차 : 동시성 프로그래밍의 중요성과 큐(Queue)의 역할 3차 : 스레드 작업처리 방식과 큐의 작업 분산방식 (Combin.. 2023. 4. 3.