WooKoo Blog

물과 같이

개발/개발

[Swift] - async/await 살펴보기

WooKoo 2022. 2. 8. 00:50

Swift 5.5에서부터

async와 await에 대한 문법이 릴리즈 되었습니다.

동기 및 비동기 로직을 작성할 때 편하게 처리를 해줄 수 있는 키워드로 먼저 동기 비동기에 대해서 짧게 살펴보고 키워드들을 사용해보겠습니다.

 

동기 (sync)

어떤 작업이 있다면 이 작업이 끝날 때까지 다른 작업을 기다리는 것

비동기 (async)

어떤 작업과는 상관없이 나머지 작업들을 바로 실행하는 것 ex) 네트워킹 작업

 

기존 소스에서 비동기 작업을 할 때 completion Handler를 통해서 특정 메소드가 끝났을 때를 알려줬었죠

 

API요청 할 때나 그럴 때 만약 error 처리 시 저렇게 그냥 return 시켜버리는 경우가 있는 경우라던가..

그런 오류처리를 해주더라도 가독성이 너무 안좋아지는 경우가 있어서 이를 처리하기 위해 나왔다!! 콜백지옥..?

 

프로젝트에 있는 걸 가져와봤는데 await는 비동기로 구성된 메서드들을 동기형태로 기다리게 하는것

즉 Riot 서비스가 완료될 때까지 대기한다는 뜻

Riot 서비스는 그럼 async한 객체겠죠?

 

보면 반환 타입을 명시하기전에 async한 메서드라고 명시해줬네요

 

다시 await를 쓸 때는

 Task(priority: .utility, operation: {
 
 }
 
 
 Task{

}

이런식으로 태스크 안에서 사용해주면 동기 코드 안에서 비동기 코드들을 작성 할 수 있어요

 

잘 이해한건지 모르겠는데... ㅎㅎ 그냥 참고만해주세요!