Open Do-hyun-Kim opened 9 months ago
Queue Global Queue
NSThread
NSOperation
sync
async
동기
비동기
Escaping Closure는 클로저가 함수의 인자로 전달 됬을때, 함수의 실행이 종료된 후에 실행되는 클로저 입니다.
Escaping Clousure를 사용하게 된다면 deeply-nested closures 가 필수적으로 구현되기에 가독성 측면에서 떨어 질 수 있습니다.
Escaping Clousure 같은 경우 오류 처리 즉 핸들링이 어렵기 때문에 매우 장황하게 만들기 쉽습니다. 다만 Swift 5.0 부터 Result Type 을 통해 Error 처리를 하게 되어, do - try catch 구문을 사용하지 않게되었습니다.
Result Type
do - try catch
Escaping Clousure에 대한 처리를 모두 정상적으로 진행 했더라도, 이어서 return 을 명시하지 않으면 의도하지 않게 코드가 계속 진행되어 버그가 발생할 수 있고, 역시 어떤 에러도 발생하지 않으므로 디버깅이 까다롭습니다.
return
Swift에서 Async/Await 기능이 도입되기 전에, 비동기(Asynchronous) 작업을 처리하는 방법에는 어떤 것들이 있나요?
👨💻 GCD (Grand Centeral Dispatch)
Queue Global Queue
,NSThread
,NSOperation
를 사용하여 멀티 스레딩(Multi Threading)을 합니다.sync
,async
closure 함수를 통해서동기
혹은비동기
처리 방식을 설정 할 수 있습니다.😵💫 Escaping closure (탈출 클로져)
Escaping Closure는 클로저가 함수의 인자로 전달 됬을때, 함수의 실행이 종료된 후에 실행되는 클로저 입니다.
Escaping Clousure를 사용하게 된다면 deeply-nested closures 가 필수적으로 구현되기에 가독성 측면에서 떨어 질 수 있습니다.
Escaping Clousure 같은 경우 오류 처리 즉 핸들링이 어렵기 때문에 매우 장황하게 만들기 쉽습니다. 다만 Swift 5.0 부터
Result Type
을 통해 Error 처리를 하게 되어,do - try catch
구문을 사용하지 않게되었습니다.Escaping Clousure에 대한 처리를 모두 정상적으로 진행 했더라도, 이어서
return
을 명시하지 않으면 의도하지 않게 코드가 계속 진행되어 버그가 발생할 수 있고, 역시 어떤 에러도 발생하지 않으므로 디버깅이 까다롭습니다.📝 참고 사이트