티스토리 뷰
(1) UserDefaults
UserDefualts 클래스는 사용자의 기본적인 데이터베이스 인터페이스로 key 키 value 값을 쌍으로 저장합니다.
작은 범위의 데이터를 저장하는 용도로 사용하는 거라 사실상 데이터베이스라 말하는 것도 조금 그렇지만 ..ㅎ
여하튼 UserDefaults는 런타임 중 객체를 사용해서 사용자의 데이터베이스에서 사용하는 기본값을 읽습니다.
유저 디폴트는 값을 필요로 할 때마다 사용자의 기본 데이터베이스를 열지 않아도 가능하게 정보를 캐시 합니다.
실제로 간단하게 사용할 수 있어서 자주 사용합니다.
저 같은 경우에는 회원가입의 사용자 정보를 담거나 버튼의 토글 상태를 담거나 등 유저 디폴트를 사용합니다.
- 사용 방법은 아주 간단합니다.
먼저 사용자의 표준 유저 디폴트 객체를 가져오기 위해 (standard)
let userInfo = UserDefaults.standard로 선언해주고
값을 넣어줄 때는 .set, .setValue로 원하는 타입의 벨류와 키를 넣어줄 수 있습니다.
값을 넣어줄 수 있는 것은 Any, Float, Double, Int, Bool 등 다양한 값으로 저장 가능합니다.
array 또한 저장 가능합니다.
* 날짜도 저장 가능합니다.
userInfo.set(Date(), forkey: "NowDate")
* 딕셔너리도 저장 가능합니다.
let dictionary = ["name": "hyeri"]
userInfo.set(dictionary, forkey: "myDict")
꺼낼 때는 userInfo.dictionary(forkey: "myDict") 이렇게 꺼낼 수 있습니다.
저장했던 값을 가져옵니다.
값을 가져오는 것 또한 여러 타입으로 가져올 수 있습니다. 종류 많아요!
삭제할 때는 removeObject로 키값을 입력해주시면 해당하는 키를 찾아 삭제해줍니다.
간단하게는 삽입, 삭제, 값 가져오기를 많이 쓰는데 기본 클래스에서 notification 등 다양하게 제공합니다.
UserDefault는 작은 데이터를 저장할 때 사용하기 때문에 딕셔너리나 배열을 사용할 때는 사이즈가 점점 커지기 때문에 조심해야 합니다.
처음에 제가 iOS 했을 때 UserDefault를 데이터 베이스처럼 막 사용했습니다 :-(
유저 디폴트는 사용하기 전에 데이터를 모두 동기화해서 로드하기 때문에 데이터베이스처럼 사용하게 되면 비효율적입니다.
또한 앱 실행 속도에도 영향을 끼칩니다.
예를 들어 사용자가 버튼에 대한 토글을 확인하려고 했는데 유저 디폴트를 전체를 로드하는 경우. 하나의 값을 확인하면 되는데 전체를 읽어버리니 유저 디폴트에는 딱 필요한 데이터를 넣는 게 가장 좋다고 생각합니다.
UserDefault 결론
사용하기가 편리하고 싱글톤이라 모든 곳에서 접근 가능한 장점이 있습니다.
단점은 표준 데이터만 저장 가능하고 커스텀 한 object는 저장이 불가합니다.
(커스텀 한 object를 저장하는 경우에는 plist 파일을 따로 만들어서 저장해주는 별도의 방법이 있긴 합니다.)
자세한 내용은 developer documentation을 참고하세요 !
'Tech > iOS' 카테고리의 다른 글
iOS 로컬 데이터 저장 (2) CoreData (0) | 2018.10.17 |
---|---|
iOS Photos 프레임워크 사용 (0) | 2018.10.08 |
iOS ActivityViewController 공유하기 (0) | 2018.09.21 |
iOS CoreLocation 위치 파악하기 (0) | 2018.08.31 |
iOS 앱 리뷰 SKStoreReviewController (0) | 2018.08.31 |
- Total
- Today
- Yesterday
- 알고리즘
- 문자열
- ios
- 스위프트UI
- rxswift
- string
- 애니메이션
- objective-c
- ARC
- Algorithm
- 책 후기
- SWIFT
- 독서
- Animation
- 딥러닝
- objc
- Xcode
- swiftUI
- wwdc
- leetcode
- swift5
- 스위프트
- ReactiveX
- Deep learning
- 책
- iOS SwiftUI
- RX
- 책 추천
- stanford SwiftUI
- 머신러닝
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |