동시성
actor 재진입성
Swift Concurrency 로 만든 아래 이미지 캐시 actor는 같은 키에 대해 네트워크 요청이 두 번 나가는 경우가 있습니다. actor가 상태를 보호해 주는데도 왜 이런 일이 생기나요?
actor ImageCache {
private var cache: [URL: UIImage] = [:]
func image(for url: URL) async throws -> UIImage {
if let hit = cache[url] { return hit }
let img = try await download(url)
cache[url] = img
return img
}
}면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.