project/개발 업무
iOS 캐싱 로직 구현 전 디스크 분석
lgvv
2024. 12. 9. 00:39
iOS 캐싱 로직 구현 전 디스크 분석
앱에서 서버를 통해 값을 받아온 후 이 값을 캐싱하고 있다가 사용자가 앱을 종료 후에 다시 접속한 경우 캐싱된 값을 먼저 보여준 후 네트워크 응답이 도착하면 갱신하는 형태로 구현하고자 함.
UserDefaults, SwiftData, CoreData, Realm, Filemanager 중에서 어떤걸 선택하는 것이 좋은지 궁금해서 비교해보기로 함.
- UserDefaults: 간단한 데이터 저장에 유용해 적합하지 않을 것으로 보임.
- SwiftData: iOS 17이상이라서 현재 현실적으로 사용하기가 어려움.
- CoreData: Realm이 있어서 굳이 써야하는지 의문이긴 함.
- Filemanager: 자주 변경되는 데이터라서 성능적으로 적합하지 않을 것 같음.
- Realm: 12.24에 Realm 들어가보니까 디바이스 지원 중단한다는 것 같아서, 장기적으로 지원 끊기는거 아닐까 걱정.
결론적으로 CoreData와 Filemanager만 간단하게 비교 분석해보고자 함.
- 애플에서 Filemanager는 블록 전체를 다시 씀으로 CoreData가 최적화되어 있기에 자주 변경되는 데이터의 경우에는 이를 쓰라고 문서에 적혀 있음.
- https://rldd.tistory.com/723
예제 샘플 파일
ArchitectureExample.zip
0.71MB
Instuments 분석 이미지
두가지 얼마나 차이나는지 궁금해서 간단하게 비교해봄.
Filemanager
쓰기 작업
- write 안에 자세히 보니까 4KB씩 작성되는거 확인
읽기 작업
CoreData
CoreData는 쓰기 후 읽기를 수행