Swift Concurrency - Sendable 프로토콜과 컴파일러 검사
댓글수 2 · 2025.08.20
Sendable 프로토콜이란? Swift Concurrency에서는 데이터의 안전성(Data Safety) 을 매우 중요하게 다룹니다.비동기 코드에서 여러 Task나 Actor가 동시에 같은 데이터에 접근할 수 있기 때문에,잘못된 동기화로 인해 데이터 레이스(Data Race)가 발생할 수 있습니다.더보기데이터 레이스란? 오늘 Mini의 Concurrency 피어마켓에서 들었는데, var count = 0count = count + 1 //스레드 Acount = count + 1 //스레드 B상황에서 - 스레드 A가 count를 읽어 0이라고 판단 -> 1증가 준비- 동시에 스레드 B도 count를 읽어 0이라고 판단 -> 1증가 준비- 두 스레드 모두 count = 1을 저장 -> 최종값은 1이 됨B..
Swift Concurrency - 값 타입 vs 참조 타입의 차이와 안정성
댓글수 0 · 2025.08.20
안녕하세요!애플 디벨로퍼 아카데미 @POSTECH 4기 Ethan입니다. Swift Concurrency를 공부하다 보면 **데이터의 안전성(Data Safety)**과 격리(Isolation) 개념을 자주 접하게 됩니다.동시성 환경에서 여러 작업(Task)들이 동일한 데이터를 다룰 때, 데이터의 일관성과 안정성을 보장하는 것이 매우 중요한데요.오늘은 그 기초가 되는 값 타입과 참조 타입의 차이를 먼저 정리해보겠습니다. 값 타입(Value Type)이란? 값 타입은 데이터를 복사해서 전달하는 타입입니다.Swift에서 struct, enum, tuple이 대표적인 값 타입입니다.struct User { var name: String var age: Int}var user1 = User(name..
Swift Concurrency - Task와 TaskGroup
댓글수 3 · 2025.08.19
안녕하세요!애플 디벨로퍼 아카데미 @POSTECH 4기로 활동중인 Ethan입니다. 요즘 Swift Concurrency를 공부하면서, Day3 주제로 Task와 TaskGroup에 대해 알아보았습니다.지난 글에서는 async/await와 GCD를 비교하면서 기본적인 비동기 개념을 다뤘는데요, 오늘은 실제로 동시성 작업을 어떻게 실행하고 관리하는지를 알아보려고 합니다.Task { let data = await fetchData() print(data)}Task란? Task는 비동기 작업의 실행 단위입니다.말 그대로, 우리가 async 함수나 비동기 로직을 실행할 때 Task 블록을 만들어서 그 안에서 실행하게 됩니다. 여기서 Task { }는 새로운 비동기 작업을 실행하는 컨테이너 역할을 합니..
Swift - async / await 알아보기
댓글수 6 · 2025.08.14
안녕하세요 ! 애플 디벨로퍼 아카데미 @POSTECH 4기로 활동중인 Ethan입니다. 제가 요즘 Swift Concurrency에 대해 알아보고 있는데, 오늘은 Day2라서 async / await 기본 사용법에 대해 알아보려고 합니다. 먼저 해당 async & await 에 대해서 자세하게 알아보기 전에, 먼저 DispatchQueue 나 completionHandler를 알아야 합니다. 왜냐하면, 기존에 비동기 처리방식이 저 두가지였으니까요 ! (이외에도 여러가지 있긴함) 일단, 가장 중요한 Process & Thread 개념에 대해 간단하게 알아봅시다. Process : 실행중인 프로그램 Thread : Process안에 포함되어 있는 실행흐름의 단위 조금 더 자세하게 설명해보자면, Proc..
Swift Concurrency / 동시성과 병렬성의 차이
댓글수 6 · 2025.08.12
Apple Developer Academy @POSTECH 4기로 현재 활동중입니다.. 여기서의 제 닉네임은 Ethan이고, 지금은 C5 챌린지 진행중인데, 마침 함께 공부할 수 있는 러너가 생겨서 이렇게 동시성과 병렬성의 차이에 대해 작성해보려고 합니다. (간단하게) 먼저 동시성이란 ! (Concurrency) 실제로는 여러작업이 동시에 진행하지 않고, 굉장히 빠른 속도로 작업을 전환하기 때문에 동시에 하는 것처럼 보인다. 그래서 동시성이다. 이거 완전 사기 아니야 ? 동시가 아닌데, 동시래.. 네. 아무튼 ! 병렬성 (Parallelism) 이란 실제로도 여러작업이 동시에 진행되며, 진짜로 동시에 실행되는 것 ! 제가 또 ChefCoding이니깐, 요리사로 설명을 한 번 드려볼게요 ! 동..