iOS에서 이미지 캐싱 기능을 사용해보자

김지하
Jan 25, 2024

--

ios에서 이미지 캐시로 이미지를 받아오는 방법은 크게 3가지가 있습니다.

  1. 메모리 캐시
  2. 디스크 캐시
  3. URL요청

1. 메모리 캐시

  • NSCache사용
  • Key-Value쌍으로 이루어진 Generic Type의 클래스
  • 메모리 영역 일부를 Caching으로 사용

단점: 앱이 종료되면 메모리에서 리소스가 해제되어 memory caching된 리소스 사라짐

  • 캐시가 보유하는 최대 object수를 관리하는 countLimit설정 가능
  • 캐시가 object제거를 시작하기 전에 보유할 수 있는 최대 총 비용을 설정하는 totalCostLimit설정 가능

2.디스크 캐시

  • FileManager사용
  • Thread Safe하므로 동시성 문제가 발생하지 않음
  • 데이터를 파일형태로 디스크에 저장
  • .cachesDirectory에 저장(Data Container/Libraray/Caches/..)
  • 앱이 종료되도 사라지지 않는다

(주의) 반복적으로 발생하면 용량이 커질 수 있음

3.URL요청

  • E-Tag사용
  • 로컬-서버 데이터 동기화
  • 서버의 데이터가 변경되었는지 체크하여 데이터를 업데이트 하는 방식
  • 디스크 캐시는 파일 생성일을 기준으로 캐시 만료를 계산하기 때문에 ETag가 동일하다면 만료일을 갱신해서 디스크 캐시에 최대한 오래 보관할 수 있음

--

--