구조적 동시성 (1)
·
iOS/Swift Concurrency
Structured Concurrency정의구조적이라는게 무슨 뜻일까 ?? 나는 구조적 = 계층적 이란 느낌이  들었다. 계층 구조의 대표적인 구조는 부모 - 자식 구조로 생각할 수 있다.작업들 역시 마찬가지다.  특징작업간의 의존성이 생김 , 자식 작업이 모두 끝나야 부모가 끝날 수 있음부모가 자식 작업을 취소할 수 있음 (취소 전파)context 상속 , [우선순위, 로컬 변수 등]자식 작업의 우선순위가  부모보다 높아지면, 부모 작업도 같이 높아짐이전 코드는 동시성일까?구조적 동시성에 대해 한번 깊게 고민해보자.아래 그림을 보며 생각해보자.너무 간단하다 아래 그림이 동시에 실행되는 구조 같다.우리는 동싱성에 대해 배우고 있는데 그러면 이런식으로 코드를 짰을까 ?? 이번에는 우리가 직접 짰던 코드를 ..
async await
·
iOS/Swift Concurrency
async 키워드비동기 함수를 선언할 때 사용한다.비동기는 멈췄다가 다시 재개 될 수 있는 함수콜뱅방식이 아닌 직접 리턴을 할 수 있다.메인 엑터가 아닐 경우 , 항상 백그라운드 스레드에서 실행된다.비동기 함수내에서 다른 비동기 함수를 호출하면 현재 컨텍스에서 실행됨 , 새로운 컨텍스 생성 x , 취소 전파가 가능문법func 함수명 async throws(에러를 발생시키면) -> 리턴 타입 { ... }await 키워드비동기 함수를 사용할 때 붙혀준다.Task와 같은 비동기 context에서 사용할 수 있다.potential suspension point 지점이된다.🤨 왜 잠재적 일시 중단 지점일까?실제 중단 지점은 I/O 작업 또는 URL 세션같은 작업에서만 발생컨커런시 이용 시, 개발자가 중단 지..
swift concurrency 등장배경
·
iOS/Swift Concurrency
[수정 2025.08.29]회사에서 컨커런시를 깊게 공부한 팀원이, 스터디를 진행하는데, 몰랐던 내용과 조금 더 상세한 내용을추가하거나 수정하려고한다.파란색 제목은 모두 스터디를 진행한 팀원분의 자료에서정리한 것을 참고했다는 점🙏 동시성 VS 병렬성 동시성은 same time에 실행되는 것처럼 보이는 개념 병렬성은 실제 물리적으로 same time에 실행되는 개념⏰ 과거 동시성 프로그래밍을 위한 기술 🧵NSTread와 PThread(POSIX Therad)1. PThread(POSIX Thread)POSIX 표준 스레드 API (C 함수 기반)가장 저수준의 스레드 제어 방법ptherad_create, pthread_join 같은 함수로 직접 스레드 관리iOS, macOS의 커널에서 실제 스레드를 실행..
Task
·
iOS/Swift Concurrency
Task정의A unit of asynchronous work. @frozenstruct Task where Success : Sendable, Failure : Error 구조체로 만들어진 비동기 작업 단위독립적인 스레드에 할당되도록한다.작업은 병렬적으로 일처리를 진행구조1. 리턴 값let task: Task = Task { return "String"}작업 성공 시 결과 값Success와 Failure를 지정해줄 수 있다. 여기서 리턴 값은 Success에 해당되는 부분이다.변수.value 를 이용해서 얻어 낼 수 있다.위 코드에서는 String에 해당된다.2. 결과 값리턴 값과 혼동이 될 수 있지만 말그대로, Result 형태로 받는다.변수.result로 얻을 수 있다.Task 블럭 내에서 발생..