Archive/패캠(올인원)

ch15 escaping과 non-escaping 클로저에 대해서 알아보자

lgvv 2021. 6. 29. 10:46

✅  이번시간에는 escaping과 관련한 지식에 대해서 알아볼 예정이야.

왜 이걸 찾아보게 되었는가? 

예전에 책으로 공부할 때도 보았는데, 그때는 이런게 있다~~ 정도로만 알았어. 그런데 이번에 completion이 존재하는 함수를 만들면서 escaping에 대해서 알 필요가 있어서 정리하게 되었어.

 

✅ 그럼 escaping과 non-escaping의 정의는 무엇일까?

 -> escaping 클로저는 클로저가 함수의 인자로 전달됐을 때, 함수의 실행이 종료된 후 실행되는 클로저

 -> non-escaping 클로저는 이와 반대로 함수의 실행이 종료되기 전에 실행되는 클로저

 

이스케이핑과 논이스케이핑을 사용하면, 둘다 사용할 수 있는데, 왜 둘이 나눌까?

 

이유 !!! 

 

 

참고 

 - https://jusung.github.io/Escaping-Closure/

 

[Swift] Escaping 클로저 (@escaping)

정의 Escaping 클로저는 클로저가 함수의 인자로 전달됐을 때, 함수의 실행이 종료된 후 실행되는 클로저 입니다. Non-Escaping 클로저는 이와 반대로 함수의 실행이 종료되기 전에 실행되는 클로저

jusung.github.io

이스케이핑이 없으면 다른 스레드로 넘기면 바로 리턴되서 다른 스레드의 처리 작업이 끝나기도 전에 문제 발생 가능.