Daily iOS
동시성

DispatchGroup fan-out 오류 처리

콜백 기반으로 짜인 결제 앱에서 독립 API 세 개가 모두 끝난 뒤 결제 요약을 만들어야 합니다. DispatchGroup의 enter와 leave를 어디에 두어 짝을 맞추겠습니까?

면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

각 요청 함수를 호출하기 직전에 enter()를 부르고, 그 요청의 completion 클로저 첫 줄에 defer { group.leave() }를 두어 성공, 실패, 취소 어느 경로로 끝나도 정확히 한 번 leave되게 한 뒤 notify(queue: .main)에서 요약을 만든다.

받은 질문 공유