본문 바로가기

TIL

UserDefault

UserDefault

class UserDefaults : NSObject
  • 사용자의 기본 데이터베이스에 대한 Interface
  • 앱 실행 시 Key-Value 값으로 데이터를 영구적으로 저장(Filesystem : Library - Preferences)
  • → 앱이 시작될 때 UserDefaults.plist 파일이 메모리에 로드되기 때문에, 많은 양의 데이터를 UserDefaults에 저장하면 앱 성능이 저하됨
  • Default System(기본 시스템)과 상호 작용
  • → Default System을 사용하면 앱이 사용자가 지정한 설정에 맞게 동작
  • 런타임에 UserDafaults 객체를 사용하여 앱이 Default Database를 캐시하여 사용
  • 이때 Preference에 직접 접근은 제한됨→ 사용자가 탐색기 앱을 사용하여 액세스할 수 있기 때문에 보안에 취약
  • → 직접 수정 시 변경 내용이 손실 및 반영 불가
  • UserDefault API는 Fingerprinting에 오용될 가능성이 있음. 그렇기 때문에 앱 또는 애플에서 제공하지 않는 SDK에서 UserDefault에 접근하는 경우 사용 이유를 선언해야 함
  •  Fingerprinting : 사용자의 디바이스나 브라우저 등에서 수집되는 정보를 기반으로 사용자를 식별하거나 추적하는 기술
  • 최근 검색 목록, 온보딩 여부 등 (보안에) 민감하지 않은 데이터를 저장
  • → 사용자 비밀번호/API 키를 저장하면 안됨
  • UserDefaults에 인앱 구매 여부를 저장하면 안됨

참고링크

UserDefaults | Apple Developer Documentation

UserDefaults, KeyChain, Core Data

iOS ) 왕초보를 위한 User Defaults사용해보기(switch)

728x90

'TIL' 카테고리의 다른 글

Storyboard  (1) 2024.01.25
Opaque And Boxe Type - 이해용 샘플 코드  (0) 2024.01.19
Opaque And Boxe Type (2)  (0) 2024.01.19
Opaque And Boxe Type (1)  (0) 2024.01.19
UICollectionView  (0) 2023.12.15