[swift] Swift 5에서 추가된 async/await 패턴의 활용
Swift 5에서는 비동기 프로그래밍을 보다 쉽게 작성할 수 있도록 async
및 await
키워드를 도입했습니다. 이를 통해 콜백 지옥(callback hell)을 피하고 코드를 간결하게 작성할 수 있습니다. 이번 포스트에서는 Swift 5에서 추가된 async/await
패턴을 통해 비동기 작업을 어떻게 활용하는지 살펴보겠습니다.
async/await란?
async
는 비동기로 실행될 함수나 블록에 사용되며, await
는 비동기 작업의 완료를 기다리는 데 사용됩니다. 이를 통해 비동기 코드를 동기식으로 작성할 수 있고, 가독성을 높일 수 있습니다.
기본 구문
func fetchData() async throws -> Data {
let url = URL(string: "https://example.com/data")!
let (data, response) = try await URLSession.shared.data(from: url)
return data
}
위 코드에서 async
키워드를 통해 fetchData
함수를 비동기 함수로 선언하고, await
키워드를 통해 URLSession
의 데이터 요청 작업이 완료될 때까지 대기합니다.
활용 예시
func displayData() async {
do {
let data = try await fetchData()
print(String(data: data, encoding: .utf8)!)
} catch {
print("Error: \(error)")
}
}
위 코드에서 displayData
함수는 fetchData
함수를 await
키워드로 호출하고, 반환된 데이터를 출력합니다. 에러 처리도 간결하게 작성할 수 있습니다.
정리
async/await
패턴을 사용하면 비동기 코드를 더 직관적이고 간결하게 작성할 수 있습니다. 활용하면서 콜백 지옥을 피하고 프로그래밍 생산성을 향상시킬 수 있습니다.
이상으로 Swift 5에서 추가된 async/await
패턴의 활용에 대해 살펴봤습니다. Happy coding!
참고: Apple Developer Documentation