async/await는 Swift에서 비동기 코드를 더 직관적이고 읽기 쉽게 작성하기 위해 도입된 기능입니다.
기존의 콜백 기반 코드보다 간결하며, 비동기 작업을 동기 코드처럼 작성할 수 있게 합니다.
async → 함수가 비동기 작업을 수행한다는 표시await → 비동기 작업의 결과를 기다림fetchData { result in
switch result {
case .success(let data):
print(data)
case .failure(let error):
print(error)
}
}
let data = try await fetchData()
print(data)
func fetchData() async throws -> String {
return "Hello"
}
async 키워드로 비동기 함수 정의throws와 함께 사용 가능 (비동기 + 에러 처리)Task {
do {
let message = try await fetchData()
print(message)
} catch {
print("Error: \(error)")
}
}
Task 또는 다른 비동기 컨텍스트에서 호출해야 함async let data1 = fetchData()
async let data2 = fetchData()
let results = await [data1, data2]
async let을 사용하면 동시 실행 가능await로 결과를 받을 때까지 대기try와 함께 사용 가능)async 함수는 반드시 비동기 컨텍스트에서 호출@MainActor 활용 가능)async/await는 Swift 비동기 프로그래밍을 더 간결하고 직관적으로 만들어줍니다.
네트워크 통신, 파일 처리 등 시간이 오래 걸리는 작업에서 적극적으로 활용됩니다.