iOS

동기(Synchorous)와 비동기(Asychorous)

jangsilverbaby 2021. 11. 22. 16:44

동기

실행이 끝날 때까지 다른 것을 처리하지 않고 대기한다.

코드가 실행 결과값을 반환받은 후 이 값에 따라 다음 로직을 실행하는 방식이다.

 

비동기

특정 기능이 실행되는 동안 대기하지 않고 다른 일을 한다.

일반적으로 비동기로 동작하는 것들은 실행 완료를 알려주기 위한 장치를 가진다.

비동기 함수들은 일반적으로 결과값을 가지지 않으며, 처리가 끝났을 때 이어서 실행할 또 다른 함수를 입력받는 경우가 많다. 이를 콜백 함수하고 한다.

처리 결과값에 따라 실행할 다음 로직을 콜백 함수 형태로 미리 전달하여, 비동기 함수가 알아서 적절한 시점에 실행하는 방식이다.

 

동기 방식의 함수를 비동기 방식으로 바꾼다는 것은 A 함수가 실행을 끝내면 B 함수가 이어서 다음 로직을 실행하던 구조를 , B 함수가가 실행해야 할 로직을 A 함수가 전달받아 적당한 시점에 알아서 실행하는 구조로 변경하는 것을 의미한다.

따라서 비동기 방식으로 실행되는 대부분의 함수는 처리 완료 후 실행할 로직을 입력받을 수 있도록 함수나 클로저 형태의 매개변수를 정의하고 있다.

 

참고 : 꼼꼼한 재은씨의 Swift 실전편