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 |