SharedPreference와 DataStore
정의
- SharedPreference는 자동 로그인과 같은 기능을 실행하기 위해서 작은 데이터를 가볍게 저장할 수 있는 방식이다.
- XML에 Key-Value 형식으로 저장함.
SharedPreference의 한계점
- Type-Safety(객체를 직접 직렬화하지 않고도 저장할 수 있다는 뜻)가 보장되지 않기 때문에 매번 형 변환을 해줘야함.
- 메인 스레드에서 호출 할 수 있게 설계된 API 지만 UI 스레드를 블로킹해 ANR 발생 가능
- Strong consistency가 보장되지 않기 때문에 다중 스레드 환경에서 안전하지 못함.
DataStore
- Coroutine, Flow를 사용하여 비동기 처리를 할 수 있는 API
- 다중 스레드 환경에서 Strong Consistency(다중 스레드 환경에서 동일한 데이터가 추출될 수 있도록 함)를 보장
- Proto DataStore에 한해 Type Safety 보장