Q27) File System
Android 파일 시스템이란 무엇인가요?
Android 파일 시스템은 Android 기기에서 데이터 저장을 관리하고 구성하는 구조화된 환경입니다. 이는 애플리케이션과 사용자가 파일을 효율적으로 저장하고 검색하며 관리할 수 있도록 합니다. 이 파일 시스템은 Linux의 파일 시스템 아키텍처를 기반으로 구축되었으며, 엄격한 보안 및 권한 모델을 준수하면서 애플리케이션에 프라이빗 및 공유 저장 공간을 모두 제공합니다.
Android 파일 시스템의 주요 구성 요소
Android 파일 시스템은 각각 고유한 목적을 가진 다양한 디렉터리와 Partition으로 구성됩니다.
System Partition (
/system): Android framework 라이브러리, 시스템 앱 및 구성 파일을 포함한 핵심 운영 체제 파일을 담고 있습니다. 이 Partition은 우발적이거나 악의적인 수정을 방지하기 위해 일반 사용자 및 앱에 대해 읽기 전용입니다.Data Partition (
/data): 데이터베이스, shared preferences 및 사용자 생성 파일을 포함한 앱별 데이터를 저장합니다. 각 앱은/data/data내에 해당 앱만 접근할 수 있는 프라이빗 디렉터리를 가지며, 데이터 보안을 보장합니다.Cache Partition (
/cache): 시스템 업데이트 또는 기기 재시작 시에도 유지될 필요가 없는 캐시된 파일과 같은 임시 데이터 저장에 사용됩니다.External Storage (
/sdcard또는/storage): 여러 앱이 접근할 수 있는 공유 저장 공간을 제공하며, 이미지, 비디오, 문서와 같은 미디어 파일에 자주 사용됩니다. 이는 내부 또는 제거 가능한 SD card일 수 있습니다.Temporary Files (
/tmp): 앱 실행 중에 임시 파일을 저장하는 위치입니다. 이 파일들은 일반적으로 앱이나 시스템이 재시작될 때 지워집니다.
Android에서 파일 접근
애플리케이션은 Android framework에서 제공하는 API를 사용하여 파일 시스템과 상호 작용합니다. 필요한 파일 가시성 및 수명에 따라 앱은 파일을 다른 위치에 저장할 수 있습니다.
Internal Storage: application sandbox 내의 프라이빗 저장 공간으로, 해당 앱만 접근할 수 있습니다. 이는 민감하거나 앱별 데이터에 이상적입니다.
External Storage: 여러 앱이 접근할 수 있는 공유 저장 공간으로, 사용자가 앱 외부에서 접근하기를 기대하는 사용자 생성 콘텐츠 또는 미디어에 사용됩니다.
파일 권한 및 보안
Android 파일 시스템은 엄격한 권한 모델을 강제합니다.
Private App Data: 앱의 Internal Storage에 저장된 파일은 프라이빗하며 해당 앱만 접근할 수 있습니다.
Shared Files: 앱 간에 파일을 공유하려면 개발자는 External Storage 또는 적절한 권한이 있는 Content Providers를 사용할 수 있습니다.
Scoped Storage: Android 10에 도입되었으며, 공유 저장소에 대한 직접적인 접근을 제한하여 앱이 MediaStore 또는 SAF (Storage Access Framework) API를 사용하도록 요구합니다.
요약
Android 파일 시스템은 애플리케이션 및 사용자를 위한 데이터 저장을 구성하고 관리하는 강력하고 안전한 환경입니다. 엄격한 보안 및 권한 제어를 준수하면서 시스템 파일, 앱별 데이터 및 공유 콘텐츠를 위한 전용 공간을 제공합니다. 개발자는 다양한 API를 통해 이 시스템과 상호 작용하여 앱의 요구 사항에 맞춰 효율적이고 안전한 파일 관리를 가능하게 합니다.