ImageCache
이미지 캐시로 이미지를 받아오는 로직은 총 3가지로 분류된다.
- 메모리 캐시
- 디스크 캐시
- URL 요청
1. 메모리 캐시
- NSCache사용
- Key-Value쌍으로 이루어진 Generic Type의 클래스
- 메모리 영역 일부를 Caching으로 사용
- 단점: 앱이 종료되면 메모리에서 리소스가 해제되어 memory caching된 리소스 사라짐
- 캐시가 보유하는 최대 object수를 관리하는 countLimit설정 가능
- 캐시가 object제거를 시작하기 전에 보유할 수 있는 최대 총 비용을 설정하는 totalCostLimit설정 가능
2. 디스크 캐시
- FileManager사용
- 데이터를 파일형태로 디스크에 저장
- .cachesDirectory에 저장(Data Container/Libraray/Caches/..)
- 앱이 종료되도 사라지지 않는다
- (주의) 반복적으로 발생하면 용량이 커질 수 있음
3. URL 요청
- URLSession을 통해 네트워크 이미지 요청
- 이미지는 용량이 크기때문에 downloadTask 사용
ImageCacheManager 구현 코드
'swift' 카테고리의 다른 글
Carousel Effect (0) | 2022.01.22 |
---|---|
Image Optimizing (0) | 2022.01.18 |
struct, class, enum (0) | 2021.12.14 |
URLSession (0) | 2021.12.10 |
Method Swizzling (0) | 2021.12.10 |