Closed guesswb closed 2 years ago
https://1consumption.github.io/posts/about-kingfisher(1)/
캐시(cache)는 [컴퓨터 과학](https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%93%A8%ED%84%B0_%EA%B3%BC%ED%95%99)에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다. 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다.
출처: 위키백과 - 캐시
url.absoluteString
을 key로 캐싱 된 이미지가 있는지 확인합니다.imageView.image
에 설정해줍니다.url
로 부터 다운로드합니다.UIImage
객체로 변환합니다.imageView.image
를 설정하세요.NSCache
https://developer.apple.com/documentation/foundation/nscache
이미지 캐싱 블로그
https://jeonyeohun.tistory.com/311
킹피셔
https://github.com/onevcat/Kingfisher
이미지캐싱할때 디스크캐시는 FileManager를 이용한다.
UserDefaults에 캐싱해두면 안되나? → 프로필 이미지처럼 자주 바뀌지 않는 것들, Thread safe
ETag
[[Swift] Image Cache처리 (NSCache, FileManager)](https://nsios.tistory.com/58)
캐시를 저장했는데 서버에서 이미지가 바뀌어버리면?
etag를 비교해서 바꼈으면 캐시 변경
그럼 결국 캐시에 접근하려면 etag가 변경되었는지 서버 요청을 꼭 날려야하는거
서버요청을 계속날리면 어차피 다 똑같아 지는거아닌ㅇ가..
[HTTP 조건부 요청 - HTTP | MDN](https://developer.mozilla.org/ko/docs/Web/HTTP/Conditional_requests)
• 결과적으로 네트워크 다운로드가 매우 적은 용량 헤더 정보만 발생하게 되고 속도도 빨라지게 된다
할일
할 일