Swift 5.5에서부터
async와 await에 대한 문법이 릴리즈 되었습니다.
동기 및 비동기 로직을 작성할 때 편하게 처리를 해줄 수 있는 키워드로 먼저 동기 비동기에 대해서 짧게 살펴보고 키워드들을 사용해보겠습니다.
동기 (sync)
어떤 작업이 있다면 이 작업이 끝날 때까지 다른 작업을 기다리는 것
비동기 (async)
어떤 작업과는 상관없이 나머지 작업들을 바로 실행하는 것 ex) 네트워킹 작업
기존 소스에서 비동기 작업을 할 때 completion Handler를 통해서 특정 메소드가 끝났을 때를 알려줬었죠
API요청 할 때나 그럴 때 만약 error 처리 시 저렇게 그냥 return 시켜버리는 경우가 있는 경우라던가..
그런 오류처리를 해주더라도 가독성이 너무 안좋아지는 경우가 있어서 이를 처리하기 위해 나왔다!! 콜백지옥..?
프로젝트에 있는 걸 가져와봤는데 await는 비동기로 구성된 메서드들을 동기형태로 기다리게 하는것
즉 Riot 서비스가 완료될 때까지 대기한다는 뜻
Riot 서비스는 그럼 async한 객체겠죠?
보면 반환 타입을 명시하기전에 async한 메서드라고 명시해줬네요
다시 await를 쓸 때는
Task(priority: .utility, operation: {
}
Task{
}
이런식으로 태스크 안에서 사용해주면 동기 코드 안에서 비동기 코드들을 작성 할 수 있어요
잘 이해한건지 모르겠는데... ㅎㅎ 그냥 참고만해주세요!
'개발 > 개발' 카테고리의 다른 글
[iOS] - iOS 앱에서 HTTP 통신 하기 (0) | 2022.02.12 |
---|---|
[개발] - PNG 와 JPG의 특징 (0) | 2022.02.08 |
Swift 5.1 새로운 문법 정리 (0) | 2022.01.31 |
[Swift] - Access Control 접근제어자 (open, public, internal, fileprivate, private) (0) | 2022.01.21 |
[iOS] - Testable한 코드를 작성하기 (0) | 2021.12.19 |