- 함수의 실행 순서를 보장받을 수 있는 클로저
- 특히 escaping 클로저는 함수의 실행이 끝나면 함수의 밖에서 실행되는 작업
- 앞의 비동기 메서드는 순서 / 끝나는 시점을 정확히 알 수 없음
- CompletionHandler와 같은 클로저를 사용하는 경우에는 비동기 메서드일 때도 작업이 종료되는 시점을 추적하고 순서를 보장받을 수 있음
- URLSession이 대표적인 예
- 서버와의 통신을 도와주는 API인 URLSession은 서버에서 데이터를 받아오는 메서드를 비동기로 실행
- 비동기로 작업이 처리되는 경우 → 언제 끝날지 정확하게 파악 불가
- → completionHandler , completion과 같은 클로저로 구현하면 끝나는 시점에 원하는 동작을 수행시킬 수 있음