Daily iOS
iOS 시스템 디자인

다운로드 매니저

앱 공용 다운로드 매니저를 설계해 주세요. 요구사항: 태스크를 직렬 또는 병렬로 실행할 수 있고 최대 동시 실행 수를 제한하며, 호출 모듈과 결합되지 않아야 합니다.

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

DownloadManager actor가 우선순위 큐와 동시 실행 카운터로 스케줄링하고, 실제 전송은 URLSession(백그라운드 구성 가능)의 downloadTask가 맡는다. 결과는 Downloadable 프로토콜과 AsyncStream 진행률로 노출해 호출자와 분리하고, 디스크 캐시는 SQLite 메타로 LRU/LFU 퇴출을 한다.

받은 질문 공유