imad-project / imad-ios

1 stars 0 forks source link

[향상]앱 데이터 캐싱 #132

Closed QuaRang1225 closed 1 week ago

QuaRang1225 commented 2 months ago

현재 앱 생명주기적으로 봤을 때 다음과 같은 로직이 사용됨

스크린샷 2024-09-05 오후 12 58 10

스크린샷 2024-09-05 오후 1 33 07

참고 https://www.youtube.com/watch?v=MQYb9S8QD4E

QuaRang1225 commented 1 month ago

불필요한 네트워크 요청을 줄이기 위해 서버에서 받아온 response데이터를 캐싱하기로 함 여기서 두가지를 선택할 수 있음

NSCache

  • 장점
    1. 시스템 메모리를 많이 사용하지 않게하고 다른곳에서 메모리를 사용할경우 캐시에서 아이템을 제거하여 관리해줌
    2. 쓰레드의 안전성
    3. NSMutableDictionary와 다르게 캐시의 키객체를 복사하지않아 메모리적으로 안전
  • 단점
    1. 무조건 참조타입만 사용할 수 있다.(구조체의 경우 사용할 수 없음)

Dictionary

  • 장점
    1. 값타입 데이터도 저장할 수 있다.
    2. 조금더 포괄적인 의미로 넓게 설계하여 사용할 수 있다.
  • 단점
    1. 쓰레드의 불안전성
    2. 데이터 충돌을 방지하기 위한 코드 수 증가

위의 내용을 고려하여 현재 코드에서의 서버에서 받아온 데이터 타입은 모두 값타입(struct)이기 때문에 딕셔너리를 사용해서 데이터를 저장하는 방식을 채택하기로 결정

참고

https://kirkim.github.io/ios/2022/08/08/nscache.html

QuaRang1225 commented 1 month ago

유저정보 앱 데이터 캐싱관련

QuaRang1225 commented 1 week ago

다른 잇슈로 세분화하여 진행