데브허브 | DEVHUB | [10분 테코톡] 미플의 안드로이드 데이터 및 파일 저장소[10분 테코톡] 미플의 안드로이드 데이터 및 파일 저장소
- 안드로이드 저장소는 앱별 저장소와 공유 저장소로 크게 나뉩니다. 📂
- 앱별 저장소는 내부 저장소와 외부 저장소로 다시 구분됩니다. 📱
- 내부 저장소는 앱 전용 공간으로, 다른 앱이나 사용자가 접근할 수 없으며 앱 삭제 시 데이터가 함께 제거됩니다. 🔒
- 내부 저장소는 영구 파일 디렉터리(
context.filesDir)와 캐시 디렉터리(context.cacheDir)로 나뉘며, 로그인 토큰이나 사용자 설정 등 민감하고 영구적인 데이터를 저장합니다. 🔑
- 외부 저장소는
/storage/emulated/0 영역 또는 SD카드를 포함하며, 사용자가 파일 관리자로 접근할 수 있는 공간입니다. 💾
- 앱 전용 외부 저장소는 외부 저장소 내 앱별 전용 공간으로, 앱 삭제 시 함께 제거되지만, SD카드 제거 등 상황에서는 접근이 불가능할 수 있어 상태 확인이 필요합니다. 🚧
- 앱 전용 외부 저장소는
context.getExternalFilesDir (영구 파일) 및 context.externalCacheDir (캐시)로 접근하며, 넷플릭스 오프라인 콘텐츠나 대용량 이미지 캐시 등 큰 데이터를 저장하는 데 사용됩니다. 🎬
- 공유 저장소는 모든 앱과 사용자가 공유하는 폴더(예: Pictures, Download)로, 적절한 권한이 있다면 다른 앱도 접근 가능하며 앱 삭제 시에도 파일이 유지됩니다. 🤝
- 안드로이드 10부터는 공유 저장소 접근 시
MediaStore API를 URI 방식으로 사용하는 것이 권장됩니다. 🖼️
- 데이터 저장 시 민감하거나 작은 데이터는 내부 저장소에, 용량이 크고 공유가 필요하면 공유 저장소에, 용량이 크지만 공유가 필요 없다면 앱별 외부 저장소에 저장하는 것이 좋습니다. ⚖️