NScash (NSCache)

  • 정의: NSCache는 Apple의 Foundation 프레임워크에서 제공하는 클래스. 데이터를 캐싱하고 관리하며, 메모리 관리와 성능 최적화에 중점을 둔 설계. 메모리 부족 시 자동으로 캐시된 객체를 제거하는 기능을 제공.
  • 특징:
    • 캐시된 객체는 강한 참조(strong reference)를 가지지만, 메모리 부족 시 자동으로 제거될 수 있음.
    • 캐시의 크기나 객체 수를 제한 가능.
    • 스레드 안전(thread-safe)하며, 여러 스레드에서 동시에 접근 가능.

딕셔너리 (Dictionary)

  • 정의: Swift의 Dictionary는 키-값 쌍으로 데이터를 저장하는 컬렉션 타입. 특정 키를 통해 값을 빠르게 검색, 추가, 삭제 가능.
  • 특징:
    • 크기가 고정되지 않으며, 필요에 따라 자동으로 확장됨.
    • 각 키는 고유해야 하며, 동일한 키에 대해 여러 값을 저장할 수 없음.
    • 스레드 안전하지 않으므로, 여러 스레드에서 접근할 경우 적절한 동기화 필요.

차이점 요약

  • 용도: NSCache는 메모리 효율성을 고려한 임시 데이터 저장소로 사용되며, 메모리 부족 시 자동으로 데이터를 제거하는 기능 제공. 반면, Dictionary는 키-값 쌍을 관리하는 기본 데이터 구조로, 메모리 관리나 캐싱 관련 기능 없음.
  • 메모리 관리: NSCache는 메모리 부족 시 데이터를 자동으로 제거하지만, Dictionary는 이런 기능이 없어 메모리 관리를 직접 신경 써야 함.
  • 스레드 안전성: NSCache는 스레드 안전하지만, Dictionary는 스레드 안전하지 않음.

이 두 클래스는 각자의 사용 목적에 따라 활용, 캐시 데이터를 관리할 필요가 있다면 NSCache, 일반적인 키-값 데이터 구조가 필요하다면 Dictionary를 사용.

'Swift' 카테고리의 다른 글

Swift RxSwift  (0) 2024.08.01
Xcode Instruments  (0) 2024.07.31
다시 한 번 돌아보는 제네릭  (0) 2024.07.30
Swift MVVM  (0) 2024.07.19
Swift 싱글톤 패턴  (0) 2024.07.14