앱에 캐싱을 적용해보신 적 있나요?

시원스쿨에선 앱에 자체적으로 API 호출에 캐싱을 구현했었죠. API 마다 호출할 때 Cache 사용 여부를 옵션으로 줘서 Cache에서 바로 가져 오거나 타임아웃 등으로 실패했을 때 Cache의 것을 응답으로 대신 주거나 해서요.


CoreData에 url별로 응답 RawData 자체를 저장했었죠.


킥고잉은 지도에 킥보드 위치 외에 각종 금지 구역 등 많은 정보를 표시했어서, 지도를 사용하는 신규 서비스를 준비하던 중에 데이터 사용을 줄이기 위한 일환으로 서버와 협의해서 구역별 캐싱을 구현했었네요. 버전으로 관리해서 업데이트되지 않은 지역은 서버가 응답을 주지 않고 캐싱된 것을 대신 사용하는 방법으로 말이죠.


이 글에서는 iOS에는 NSCache라는 자체 캐싱 기능을 소개하는데 메모리에만 저장되어서 재실행하면 없어지나 봐요. 재실행해도 사용하기 위해 임시 디렉토리에 파일을 생성하는 방식을 사용한다는데 NSCache에서 옵션으로 그런 것을 따로 지원하지는 않나봐요.


임시 디렉토리는 NSTemporaryDirectory, cachesDirectory 두개를 소개했는데 둘다 임시라 시스템이 지울 수 있다고만하고 뭐가 다른지는 언급이 없는게 좀 아쉽네요.


#직독직해 #medium #swift #ios #caching #disk #memory

https://youtu.be/gIF7tH2YkSQ

2024년 iOS 캐싱하기, 앱의 성능을 향상시키세요 - 한마디로 Medium 직독직해 #129

www.youtube.com

2024년 iOS 캐싱하기, 앱의 성능을 향상시키세요 - 한마디로 Medium 직독직해 #129

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 5월 24일 오전 12:57

댓글 0