TIL(Today I Learned)
2월 25일(목)
학습내용
- iOS File System
- SandBox(모래 놀이터) 구조라고 한다. SandBox는 운영체제에서 허용한 영역 내에서는 자유롭지만 영역 밖으로는 매우 제한적인 구조이다.
- SandBox는 Bundle Container, Data Container, iCloud Container로 구성된다.
- Data Container은 Documents, Library, temp로 구성된다. 앱과 유저에 의해 생성된 데이터를 저장하는 Container이다.
- Documents는 외부로 공개할 수 있는 데이터를 모아 둔 곳.
- Inbox: 외부에서 열도록 요청한 파일을 저장하는 곳. 직접 파일을 생성하거나 기존 파일을 수정할 수 없다.
- Library는 사용자 데이터를 제외한 데이터를 저장하는 곳(특수한 경우에는 사용자 데이터를 저장하기도 함). 사용자가 직접 접근할 수 없다. 공유하기 등을 이용하여 사용 할 수는 있다.
- Application Support: 애플리케이션 데이터 저장. 백업 된다.
- Caches : 반복 사용하는 임시 데이터 저장, 디스트 용량 부족시 시스템에서 자동 청소, 백업 되지 않는다.
- Preferences: 애플리케이션 설정 데이터를 저장, 백업 된다.
- tmp는 재사용 하지 않는 임시 데이터 저장하는 곳이다. 시스템이 주기적으로 청소하며, 백업 되지 않는다.
- Documents는 외부로 공개할 수 있는 데이터를 모아 둔 곳.
- FileManager를 통해 iOS File System에 접근할 수 있다.
문제점/고민한점
- Core Data는 데이터를 어디에 저장할까?
해결방법
- Core Data는 데이터를 기본적으로 Library/Applicaton Support에 저장한다. 필요에 따라 Documents에 저장하도록 변경할 수도 있다. (원래는 Documents에 저장했었는데 iOS 10 이후로는 Library/Applicaton Support로 변경되었다고 한다.)
참고