[iOS] SandBox
각 앱에는 파일을 저장하기 위한 자체 폴더가 있으며 다른 앱에 속한 디렉터리나 파일에는 접근할 수 없음
이러한 자체 폴더를 샌드박스라고 함
샌드박스로 인해 바이러스와 같은 악성 소프트웨어가 앱을 손상입히지 못함
앱은 이 샌드박스의 “Documents” 폴더에 파일을 저장할 수 있음
Documents 폴더의 내용은 iTunes / iCloud와 동기화할 때 백업됨
앱의 새 버전을 출시하거나 업데이트할 때에도 Documents 폴더는 그대로 유지됨
샌드박스 폴더 안에는 여러 폴더가 존재함
- Documents : 앱이 데이터 파일을 저장할 폴더. 처음에는 비어 있음
- Library : 캐시 파일과 기본 설정 파일이 존재. 이 폴더의 내용은 운영 체제에서 관리함
- SystemData : 이름에서 알 수 있듯이 운영 체제에서 앱과 관련된 시스템 레벨 정보를 저장하는데 사용 됨
- tmp : 임시 파일용. 운영 체제는 때때로 이 폴더를 지움
코드
Documents 폴더에 접근
func documentsDirectory() -> URL {
let paths = FileManager.default.urls(
for: .documentDirectory,
in: .userDomainMask)
return paths[0]
}
위 코드로 반환된 경로에 저장할 파일명을 붙여서 path를 구성할 수 있음
func dataFilePath() -> URL {
return documentsDirectory().appendingPathComponent("파일명")
}
댓글남기기