앱 샌드박스 디렉터리
Documents, Caches 및 임시 위치를 사용합니다.
앱 샌드박스 디렉터리은(는) CoddyKit의 무료 Swift Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Swift Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Swift Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
App 샌드박스 디렉터리
App은 샌드박스에서 실행되므로 자체 컨테이너 안에서만 파일을 쓸 수 있습니다. 문서, 캐시, 임시 파일을 위한 표준 폴더가 제공됩니다.
문서 디렉터리 찾기
FileManager.urls(for:in:)은 알려진 디렉터리의 URL을 반환합니다. .documentDirectory에는 백업해야 하는 사용자 데이터가 저장됩니다.
import Foundation
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
print("Documents path ends correctly: \(docs.lastPathComponent)")파일 URL 만들기
디렉터리 URL에 파일 이름을 덧붙이면 자체 파일의 전체 경로를 얻을 수 있습니다.
import Foundation
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
let file = docs.appendingPathComponent("profile.json")
print(file.lastPathComponent)캐시 디렉터리
.cachesDirectory에는 다시 생성할 수 있는 데이터가 저장됩니다. 디스크 공간이 부족하면 시스템이 이 데이터를 삭제할 수 있으므로, 여기에는 대체할 수 없는 데이터를 절대 보관하지 마세요.
import Foundation
let fm = FileManager.default
let caches = fm.urls(for: .cachesDirectory, in: .userDomainMask).first!
print("Caches dir name: \(caches.lastPathComponent)")임시 디렉터리
FileManager.default.temporaryDirectory는 수명이 짧은 파일을 위한 임시 공간을 제공하며, 사용한 파일은 직접 정리해야 합니다.
import Foundation
let tmp = FileManager.default.temporaryDirectory
let scratch = tmp.appendingPathComponent("work.tmp")
print("Temp file path ready: \(scratch.lastPathComponent)")문서 vs 캐시 vs 임시 파일
사용자가 만든 데이터에는 문서를, 다시 생성할 수 있는 데이터에는 캐시를, 버려도 되는 파일에는 tmp를 사용하세요.
import Foundation
// Choose the right folder for the data's lifetime.
print("Documents = backed up, Caches = purgeable, tmp = transient")애플리케이션 지원
.applicationSupportDirectory에는 데이터베이스처럼 사용자가 직접 다루지 않는 App 관리 데이터가 저장됩니다. 보통 첫 실행 시 이 디렉터리를 직접 만듭니다.
import Foundation
let fm = FileManager.default
let support = fm.urls(for: .applicationSupportDirectory, in: .userDomainMask).first!
try? fm.createDirectory(at: support, withIntermediateDirectories: true)
print("Ensured Application Support exists")문서에 저장하기
디렉터리 URL과 쓰기 호출을 결합하면 샌드박스 안에 사용자 데이터를 저장할 수 있습니다.
import Foundation
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
let url = docs.appendingPathComponent("note.txt")
try? "hello".write(to: url, atomically: true, encoding: .utf8)
print("Saved into Documents")다시 읽기
샌드박스 파일도 모든 파일 URL과 같은 방식으로 읽을 수 있습니다. 컨테이너 안에서는 해당 경로가 완전히 유효하기 때문입니다.
import Foundation
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
let url = docs.appendingPathComponent("note.txt")
if let text = try? String(contentsOf: url, encoding: .utf8) {
print(text)
}백업에서 제외하기
크기가 크고 다시 생성할 수 있는 파일에는 isExcludedFromBackup 리소스 값을 설정하여 iCloud 백업 용량이 불필요하게 커지지 않도록 하세요.
import Foundation
var url = URL(fileURLWithPath: "/tmp/big.cache")
var values = URLResourceValues()
values.isExcludedFromBackup = true
try? url.setResourceValues(values)
print("Marked excluded from backup")샌드박스가 중요한 이유
샌드박스 경로는 설치할 때마다, 기기마다 달라지므로 절대 하드코딩하지 마세요. 항상 FileManager로 실행 중에 디렉터리를 확인하세요.
import Foundation
// Never hardcode /var/mobile/... — resolve at runtime instead.
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
print("Resolved Documents dynamically: \(!docs.path.isEmpty)")빠른 확인
백업해야 하는 사용자 데이터는 어느 디렉터리에 저장해야 하나요?
복습
App은 FileManager.urls(for:in:)을 통해 확인한 샌드박스 폴더에 파일을 저장합니다. 백업되는 사용자 데이터에는 문서를, 다시 생성할 수 있는 데이터에는 캐시를, 일시적인 파일에는 tmp를 사용하며, 그 외에 애플리케이션 지원 디렉터리도 있습니다. 경로는 실행 중에 확인하고 절대 하드코딩하지 마세요. 이것으로 파일 입출력 과정을 마칩니다.
자주 묻는 질문
“앱 샌드박스 디렉터리” 강의는 무료인가요?
네 — “앱 샌드박스 디렉터리” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Swift Academy 강의 전체를 잠금 해제할 수 있습니다. Swift Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“앱 샌드박스 디렉터리”에서 뭘 배우나요?
Documents, Caches 및 임시 위치를 사용합니다. 브라우저에서 직접 실행하는 실습 코드로 Swift Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Swift Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Swift Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“앱 샌드박스 디렉터리” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Swift Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Swift Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- URL과 파일 경로
- 데이터 읽기와 쓰기
- 디렉터리 관리
- 앱 샌드박스 디렉터리