DataStore을 살펴보기 전에..
데이터를 앱에 저장하는 방법
데이터를 앱에 저장하는 방법은 아래 3가지가 있다.
- 파일 I/O(내부 또는 외부 저장소)
- 접근 권한을 획득하고 파일을 열었다 닫았다 하는 수고가 필요하다.
- 관계형 데이터베이스
- SQLite 등을 이용해 복잡한 관계형 데이터를 저장할 수 있음
- 간단한 데이터를 저장한다면 구축과 관리에 많은 시간과 노력이 요구됨
- SharedPreferences → 앱의 환경설정과 같이 단순한 내용에 적합
- Key/Value 형태로 이용함
- 내부적으로는 XML 파일로 저장됨
- 파일을 열고 닫을 필요 없이 핸들러를 만들어서 간편하게 사용가능
SharedPreferences 사용법

SharedPreferences의 단점
- UI 스레드에서 호출 할 수 있도록 API가 설계되었지만, XML파일 I/O작업을 하는 것 임으로 UI Thread에서 작업할 경우 안전하지 않다.
- Runtime Exception으로부터 안전하지 않다.
- Type-Safety를 제공하지 않는다.
SharedPreferences를 보완하기 위한 DataStore의 등장
DataStore이란?
Jetpack DataStore는 코루틴 및 Flow를 사용하여 비동기적이고 일관된 트랜잭션 방식으로 데이터를 저장하는 데이터 저장소 솔루션 입니다!
🧐Room과의 비교