KingFisher 분석(2)

Jisu·2023년 9월 5일
0

iOS

목록 보기
3/9

지난번 KingFisher 내부 구조 분석에 이어서 캐싱처리 로직을 분석해보고자한다.

URL을 이용해 Source타입을 만드는 함수를 살펴보자.
overrideCacheKey가 없다면 내부 cacheKey를 사용하도록 하고 있다.

그런데 ImageResource는 만약 캐싱키를 지정해주지않는다면 downloadURL의 캐싱키로 캐싱키를 설정하고 있다.


URL에 extension을 사용해서 Resource 프로토콜을 채택하고 내부에 캐싱키와 downloadURL을 선언했다. 설명에도 쓰여있듯이 URL의 absoluteString이 caheKey로 사용되고 있다고 밝히고 있다.


내부 로직을 좀 더 파보면 이미지를 받아오는 과정에서 cacheImage라는 함수가 사용되고, 내부에서 cache를 저장하고 있는 것을 볼 수 있다.


또한 store 함수를 또 타고타고 들어가보면 결국에 캐시는 NSCache에 저장됨을 알 수 있다.

문자열을 key로 지정하고, value값을 제네릭 클래스로 다루고 있다.

UIKit으로 이미지 비동기 처리할 때 직접 NsCache에 지정해주었는데... 결국 파고파고 보니 똑같은 것이었다. 구조는 복잡하지만 원리는 결국 같구나를 몸소 느낄 수 있었다.

profile
비즈니스에 관심많은 DevOps Engineer 장지수입니다.

0개의 댓글