비동기(Asynchronous)
비동기 처리 방식이란 작업을 독립적으로 동시에 실행할 수 있는 프로그래밍 개념입니다. 각 작업 완료될 때까지 기다릴 필요 없이 프로그램이 다음 작업을 수행할 수 있도록 합니다. 즉, 병렬적으로 작업(task)을 수행합니다.
비동기 처리 방식은 요청에 대한 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있어 자원을 효율적으로 사용할 수 있습니다. 하지만 동기 방식보다 복잡하고 task의 실행순서가 보장되지 않는다는 단점이 있습니다.
비동기 코드
- 나중에 알 수 없는 시간에 호출될 수 있는 코드
- 바로 실행되지 않음
- 이후 라인에 있는 코드가 실행되는 것을 막지 않음
- 보통 클로저를 통해 해당 시점을 알려줌
- completionHandler 혹은 completion
동기(Synchronous)
동기 처리 방식이란 요청을 보낸 후 응답을 받아야만 다음 동작이 이뤄질 수 있는 프로그래밍 개념입니다. 요청에 대한 결과가 얼마나 걸리던지 결과가 올 때까지 기다려야 합니다. task들이 직렬적으로 수행되어, 한 task를 처리할 동안 다른 task들은 대기해야 합니다.
동기 처리 방식은 설계가 매우 간단하고 직관적이지만, 결과가 올 때까지 계속 대기만 하게 되어 시스템 효율이 저하될 수 있습니다.
Swift에서 비동기 처리
swift에서는 다양한 방법으로 비동기 처리를 할 수 있습니다. GCD, async/await, Combine 등등 다양한 방법이 애플에서 제공되며, PromiseKit, Alamofire, RxSwift 등 다양한 외부 프레임워크와 라이브러리가 존재합니다.
다양한 비동기 처리 방식들 중 프로젝트의 요구사항, swift 버전, 코드 구조와 아키텍처 등 다양한 요소들을 고려해 상황에 맞게 적절하게 사용할 수 있습니다.
이후 포스트에는 GCD부터 순서대로 비동기 처리 방식에 대해 알아보려고 합니다.
'🍎 iOS' 카테고리의 다른 글
Pinch Gesture (0) | 2023.01.13 |
---|---|
Swipe Gesture (0) | 2023.01.12 |
Tap Touch (0) | 2023.01.11 |
Core Graphics (0) | 2023.01.10 |
카메라와 포토 라이브러리 앱 (0) | 2023.01.06 |
댓글