File System
- 내가 어떻게 저장하고, 불러올 지 정하는 것
- APFS는 mac OS, iOS, watchOS 및 tvOS의 기본 파일 시스템입니다
- iOS 앱은 보안상의 이유로 파일 시스템의 sandbox directory에서 각각 관리됩니다.
Sandbox directory
- 번들 컨테이너
- 실행가능한 파일, info.plist, 각종 Resources(이미지, 사운드, strings등)등을 할때 그룹화
- 데이터 컨테이너
- Document(사용자가 직접 접근)
- Library(사용자가 직접 접근하지 못함)
- Temp
- iCloud 컨테이너
1) 데이터 컨테이너 - Document
- 설정에 따라 유저가 직접 파일 추가 및 삭제 가능> 따라서 유저에 의해 삭제되거나 내용이 변경되어도 무방하고 유저가 다루는 컨텐츠와 관련이 있는 파일들만 저장
2) 데이터 컨테이너 - Library
- 유저 데이터 파일 및 임시 파일을 제외한 모든 파일들을 관리> 유저에게 노출되는 것을 피하고 앱의 기능이나 관리에 필요한 파일 저장
Application support
- 앱의 기능 또는 관리를 위해 지속적으로 관리해야되는 파일 저장
- Documents와 거의 동일한 속성을 가지지만, 유저에 대한 노출 여부에 따라 위치가 결정됩니다.
- CoreData 기본 저장 경로
Cache
- 앱의 동작 속도/데이터 절약 등을 위해 사용되는 공간
- 반복 사용 임시 데이터를 저장
- 디스크 용량 부족 시 시스템에서 자동 청소
- 실행중에는 삭제 x
Preference
- 진짜 딱 설정 데이터 저장, 직접 수정 권장하지 않는다.
3) 데이터 컨테이너 - Temp
- 현재 앱 실행중에는 사용하지만 유지할 필요 없는 임시 파일 저장
- 재사용 되지않는 임시 데이터 저장
- 사용 후 필요없어진 파일은 직접 삭제해주는 것을 권장
활동학습
다음의 데이터는 어느 영역에 저장하는 것이 좋을까?
- 동영상 플레이어의 동영상 파일
- → Document ⇒ 사용자가 직접 접근해서 수정/추가/삭제가 가능하기에
- 웹 서버에서 받아온 임시 데이터→ 일회성으로 받는 거(+사용자가 다운을 받다가 그만 두는 것도) temp
- → cache일 수도
- 사용자가 작성한 임시 메모
- → document ⇒ 사용자가 직접 접근해서 수정/추가/삭제가 가능하기에
- 메모장 앱의 메모정보
- → application support ⇒ 안보이게끔 할거 같다 + iOS 메모앱은 CoreData(application support)
- 내 일기를 외부로 내보내기 위한 백업 파일
- → temp ⇒ 잠시 저장된 임시 데이터(지워도 되는)
- 채팅 앱의 대화내역
- → library(application support)
- 어젯밤 술취해 남겨둔 음성메모
- → document ⇒ 사용자가 직접 접근해서 수정/추가/삭제가 가능하기에
- 사진편집을 위해 사진첩에서 가져온 사진→ 편집 뒤에 없어져도 된다면 → temp
- → 편집 뒤에 안없어진다면 → cache
- → Document(Inbox) ⇒ 사용자가 직접 접근해서 수정/추가/삭제가 가능하기에(폴라리스 마냥)
'iOS' 카테고리의 다른 글
[iOS] CGPoint, CGSize, CGRect (0) | 2023.02.06 |
---|---|
[iOS] TextField 왼쪽 여백 넣기 (0) | 2023.02.06 |
[iOS] MVC (0) | 2023.02.04 |
[iOS] Singleton(싱글톤) (0) | 2023.02.04 |
[iOS] 메모리 구조/ARC(Automatic Reference Count) (0) | 2023.02.04 |