동시성이란? 동시성은 여러 작업이 동시에 진행될 수 있는 능력을 의미하며, 이는 프로그램의 효율성을 크게 향상시킬 수 있습니다. 또한 단순히 여러 작업이 동시에 실행되는 것뿐만 아니라, 각 작업이 서로 영향을 미치지 않고 독립적으로 진행될 수 있는 환경을 조성하는 것
동기(Synchronous)와 비동기(Asynchronous)는 작업이 수행되는 방식에 대한 두 가지 다른 접근 방식입니다. 동기(Synchronous) 동기의 사전적 의미는 "동시에 일어나다"이지만, 프로그래밍에서 동기는 작업이 순차적으로 진행되는 것으로 이전 작
이번 게시글에서는 Swift에서 비동기 프로그래밍을 위한 접근 방식인 GCD에 대해 알아보겠습니다.GCD(Grand Central Dispatch)는 Apple의 비동기 프로그래밍을 위한 기술로, 멀티코어 프로세서의 성능을 극대화하기 위해 설계되었습니다. GCD는 작업
Swift Concurrency는 iOS 13.0부터 도입된 기능으로, 비동기 프로그래밍을 보다 직관적으로 작성할 수 있게 해줍니다. 기존의 비동기 프로그래밍 방식은 복잡한 콜백 구조와 클로저를 사용해야 했지만, Swift Concurrency는 async와 await
동시성 프로그래밍(Concurrent Programming)을 할 때는 Data Race가 발생하지 않도록 해야합니다. Data Race 데이터 레이스란 멀티 스레드/프로세스 환경에서 일어나는 오류로 여러 스레드/프로세스가 공유 자원에 동시에 접근하려 할 때, 일어
저번에 async/await 관한 글을 쓸 때 Task에 대해 간략히 말했었습니다. 그래서 이번 글에서는 Task에 대해 알아볼게요Task는 비동기 작업 하나를 나타내는 타입입니다. 동기 컨텍스트 어디서든 만들 수 있습니다.반환값에 접근하고 싶다면 await으로 기다릴
이번 글에서는 .task에 대해 알아볼게요.task는 SwiftUI iOS 15+에서 추가된 뷰 수식어로, SwiftUI View lifecycle에 연결된 비동기 작업 modifier에요Task는 SwiftUI lifecycle과 연결되지 않습니다. 그래서 취소를 하
이번 글에서는 TaskGroup에 대해 알아볼게요기존에 Task를 이용해서 10개의 키워드에 대해 각각 네트워크 요청을 보내야 한다면 다음과 같이 해야했죠이 코드는 1번 요청이 끝나야 2번이 시작되기 때문에 10개 요청이 각각 1초씩 걸린다면 총 10초가 걸려요. 이럴
이번 글에서는 뮤텍스와 세마포어에 대해 알아볼게요뮤텍스는 한 번에 하나의 스레드만 특정 코드 영역에 들어올 수 있도록 막아주는 동시성 제어 도구로 주된 목적은 여러 스레드가 동시에 하나의 데이터를 수정하면서 발생하는 문제, 즉 데이터 깨짐(Race Condition)을
저번에 GCD와 async/await에 대해서 다룬 적이 있는데 그땐 개념만 설명했어서 이번에는 async/await를 사용하면서 어떤 부분들이 좋아졌는지 알아볼게요 1. 가독성 GCD는 다음과 같이 사용한다했었죠? 작업이 끝나면 “나 이거 끝났어!” 하고 알려줘야