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는 재사용 하지 않는 임시 데이터 저장하는 곳이다. 시스템이 주기적으로 청소하며, 백업 되지 않는다.
    • FileManager를 통해 iOS File System에 접근할 수 있다.

문제점/고민한점

  1. Core Data는 데이터를 어디에 저장할까?

해결방법

  1. Core Data는 데이터를 기본적으로 Library/Applicaton Support에 저장한다. 필요에 따라 Documents에 저장하도록 변경할 수도 있다. (원래는 Documents에 저장했었는데 iOS 10 이후로는 Library/Applicaton Support로 변경되었다고 한다.)

참고