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