iOS 시스템 디자인
검색 기능 설계
음악 앱의 검색 화면(입력 중 자동완성, 결과 목록, 최근 검색어)을 설계해 주세요. 타이핑할 때마다 요청이 나가지 않게 빈도를 어떻게 제어할지를 중심으로 설명해 주세요.
면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
음악 앱의 검색 화면(입력 중 자동완성, 결과 목록, 최근 검색어)을 설계해 주세요. 타이핑할 때마다 요청이 나가지 않게 빈도를 어떻게 제어할지를 중심으로 설명해 주세요.
입력을 디바운스(200~300ms)하고 2자 미만은 무시해 요청 수를 줄인다. 자동완성은 짧은 TTL 메모리 캐시, 최근 검색어·다운로드 콘텐츠는 로컬 DB로 오프라인 검색. 결과는 섹션(곡/앨범/아티스트)으로 diffable 표시.
동시성주관식기초
검색창에 글자를 입력할 때마다 API를 호출하면 요청이 폭주합니다. 마지막 입력 후 300ms 동안 추가 입력이 없을 때만 호출되도록 디바운스를 GCD로 직접…
#search #debounce #cancellation
동시성주관식심화
DispatchQueue.main.asyncAfter(deadline: .now() + 2) { showTooltip() }로 예약한 작업을 사용자가 2초 안에…
#debounce #cancellation
동시성주관식기초
검색어가 바뀔 때 이전 검색의 네트워크, 디코딩, 이미지 작업이 모두 멈춰야 합니다. 부모 Task와 자식 Task의 취소 전파를 이용해 작업 트리를 어떻게…
#search #cancellation
CS 기초·알고리즘주관식딥다이브
오프라인에서도 동작하는 검색어 자동완성을 만들어야 합니다. 후보 단어 50만 개, 입력마다 상위 10개를 16ms 안에 돌려줘야 합니다. 자료구조를 어떻게…
#search #autocomplete