0Pricing
Swift Academy · 강의

async let과 동시 자식 작업

async let 바인딩으로 독립적인 비동기 작업을 동시에 실행합니다.

async let과 동시 자식 작업은(는) CoddyKit의 무료 Swift Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Swift Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Swift Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

환영합니다

`async let`은 여러 비동기 작업을 동시에 실행합니다. 모든 작업이 즉시 시작되고, 필요할 때 `await`가 결과를 기다립니다.

순차 실행과 동시 실행

```swift // Sequential — slow: let a = try await fetchA() let b = try await fetchB() // Concurrent with async let — fast: async let a = fetchA() async let b = fetchB() let (resultA, resultB) = try await (a, b) ```

async let 구문

```swift async let title = fetchTitle(id) async let author = fetchAuthor(id) async let content = fetchContent(id) let article = Article( title: try await title, author: try await author, content: try await content ) ```

전부 아니면 아무것도

어떤 `async let` 바인딩에서든 오류가 발생하면 오류가 전파됩니다. 시스템이 형제 작업을 자동으로 취소합니다.

반복문에서 async let 사용

```swift var results: [Data] = [] await withTaskGroup(of: Data.self) { group in for url in urls { group.addTask { try await URLSession.shared.data(from: url).0 } } for await data in group { results.append(data) } } ```

TaskGroup

```swift await withTaskGroup(of: Int.self) { group in for i in 1...5 { group.addTask { i * i } } var squares: [Int] = [] for await square in group { squares.append(square) } print(squares.sorted()) // [1,4,9,16,25] } ```

ThrowingTaskGroup

```swift try await withThrowingTaskGroup(of: User.self) { group in for id in ids { group.addTask { try await fetchUser(id: id) } } for try await user in group { process(user) } } ```

구조적 동시성 트리

`async let`과 TaskGroup은 작업 트리를 구성합니다. 부모 작업은 모든 자식 작업이 끝날 때까지 기다립니다. 부모 작업을 취소하면 모든 자식 작업도 취소됩니다.

async let과 TaskGroup 중 선택하기

• `async let` — 컴파일 시점에 동시 작업의 개수가 정해져 있을 때 • `TaskGroup` — 배열 처리처럼 작업 개수가 동적으로 정해질 때

TaskGroup으로 동시성 제한하기

```swift await withTaskGroup(of: Void.self) { group in let concurrency = 4 var running = 0 for url in urls { if running >= concurrency { await group.next() } group.addTask { await process(url) } running += 1 } } ```

빠른 확인

형제 `async let` 작업 중 하나에서 오류가 발생하면 나머지 작업에는 어떤 일이 일어나나요?

복습

핵심 내용: • `async let x = asyncWork()` — 즉시 시작되며 동시에 실행됩니다 • `try await x` — 결과를 기다립니다 • 전부 아니면 아무것도: 오류가 발생하면 형제 작업이 취소됩니다 • `withTaskGroup` — 동적으로 구성되는 동시 작업 집합 • 구조적 동시성 = 자동 자식 작업 관리 다음: 액터

자주 묻는 질문

“async let과 동시 자식 작업” 강의는 무료인가요?

네 — “async let과 동시 자식 작업” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Swift Academy 강의 전체를 잠금 해제할 수 있습니다. Swift Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“async let과 동시 자식 작업”에서 뭘 배우나요?

async let 바인딩으로 독립적인 비동기 작업을 동시에 실행합니다. 브라우저에서 직접 실행하는 실습 코드로 Swift Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Swift Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Swift Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“async let과 동시 자식 작업” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Swift Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Swift Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. async/await 구문과 비동기 함수 호출
  2. Task와 Task 취소
  3. async let과 동시 자식 작업
  4. 액터: 공유 변경 가능 상태 보호
← Swift Academy(으)로 돌아가기