동시성
지연 작업 취소
DispatchQueue.main.asyncAfter(deadline: .now() + 2) { showTooltip() }로 예약한 작업을 사용자가 2초 안에 화면을 떠나면 취소해야 합니다. GCD로는 어떻게 구현하겠습니까?
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
DispatchQueue.main.asyncAfter(deadline: .now() + 2) { showTooltip() }로 예약한 작업을 사용자가 2초 안에 화면을 떠나면 취소해야 합니다. GCD로는 어떻게 구현하겠습니까?
클로저를 DispatchWorkItem으로 감싸 asyncAfter에 넘기고 프로퍼티에 보관해 두었다가 화면을 떠날 때 cancel()한다. 키별로 보관해 새 예약 시 이전 것을 취소하면 디바운스로도 쓸 수 있다.
동시성주관식기초
검색창에 글자를 입력할 때마다 API를 호출하면 요청이 폭주합니다. 마지막 입력 후 300ms 동안 추가 입력이 없을 때만 호출되도록 디바운스를 GCD로 직접…
#dispatchworkitem #cancellation #debounce
동시성객관식딥다이브
Swift Concurrency 의 다음 코드에서 t.cancel() 직후 실제로 일어나는 일로 옳은 것은? …
#cancellation #task-sleep
iOS 시스템 디자인주관식기초
음악 앱의 검색 화면(입력 중 자동완성, 결과 목록, 최근 검색어)을 설계해 주세요. 타이핑할 때마다 요청이 나가지 않게 빈도를 어떻게 제어할지를 중심으로…
#cancellation #debounce
동시성주관식기초
이미지 다운로드 → 리사이즈 → 디스크 캐시 저장 파이프라인을 만드는데, 사용자가 스크롤하면 진행 중인 작업을 취소해야 합니다. GCD와…
#cancellation