본문 바로가기
🍎 iOS

[비동기 처리] 비동기 처리란?

by hyebin (Helia) 2023. 9. 18.

비동기(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

댓글