
👋 들어가기 전
오랜만에 iOS 개념 공부 관련으로 포스팅을 쓰게 됐다.
개발 시 많이 나왔던 개념이지만 나중에 하겠다고 미뤄놨던 샌드박스를 공부해볼까한다.
샌드박스와 함께 연관된 파일시스템도 알아보자.
P.S 네이버 부스트 캠프는 수료를 했음에도 불구하고 좋은 공부 과제를 찾게 해주셔서
정말 감사할 따름이다.
✊샌드박스
먼저 샌드박스는 개발 분야뿐만 아니라 많이 등장하는 단어이다.
어원을 먼저 한번 살펴보자.

샌드박스는 단독주택이 많은 아이들이 밖에서 노는 간이 놀이터이다.
보통 위치는 마당에 있고 푹신한 모래로 되어있기 때문에, 통제가능하고 안전하다는 의미가 있는 것 같다.
iOS 역시 마찬가지다.
✨ 정의
샌드박스란 커널 수준에서 앱의 데이터에 대한 접근을 제한하는 기술이다.
📦 생성 시기
앱을 설치할 때 운영체제는 보안을 위해 앱에 대한 샌드박스를 만든다.
🏁 특징

그림을 통해 특징을 살펴보자.
왼쪽 그림에는 샌드박스가 없는데 이 때 앱이 유저 데이터와 시스템 리소스의 직접 접근이 가능하면
앱 사용자가 모든 권한을 갖게 된다. 따라서 보안이 뚤리거나 앱이 손상되면
심각한 보안 이슈가 발생 할 수 있다.
하지만 샌드박스를 부여하면 앱에서는 리소스 접근이 제한된다.
여기서 말하는 리소스는 대표적으로 다음과 같다.
만약 앱에서 아래 리소스가 필요하지만 권한 요청을 하지 않으면 러타임 시 시스템에서 거부된다.
- Hardware (Camera, Microphone, USB, Printer)
- Network Connections (Inbound or Outbound)
- App Data (Calendar, Location, Contacts)
- User Files (Downloads, Pictures, Music, Movies, User Selected Files)
☝️파일 시스템
iOS앱은 UNIX 기반 파일시스템을 사용(APFS),iOS 앱은 앱 하나에 대한 SandBox를 부여받는다.
그렇기 때문에 앱은 샌드박스 디렉토리 내부에 있는 파일들과만 상호작용할 수 있다.
📂 컨테이너 디렉토리

위 그림을 보면 샌드박스 내에는 크게 3가지 컨테이너가 있다.
앱은 오직 이 컨테이너안에 있는 파일에 접근할 수 있다.
하지만 유일하게 외부로 접근하는 경우는 시스템 API를 이용할 때 이다.
대표적으로 음악 앱, 갤러리 앱과 같은 시스템 앱이 떠오른다.
각 컨테이너와 대표적인 디렉토리를 살펴보자.
✌️ 번들 컨테이너
역할
앱의 번들(AppName.app)을 보유하고 모든 리소스가 포함되어 있다.
특징
1. .swift 파일이 바이너리 형태의 실행파일로 변환된다.
2. 이 컨테이너에는 쓰기가 불가능하고 리소스에 대한 읽기 전용 엑세스 권한을 얻을 수 있다.
3. 라이브러리는 프레임워크 그룹화되어 저장
👍 데이터 컨테이터
역할
앱과 사용자 데이터를 보유한다.
특징
1. 사용자가 직접 디렉토리를 추가할 수는 없으며 서브 디렉토리를 통해 관리
2. 목적에 맞는 여러 서브 디렉토리가 존재

데이터 컨테이너 뿐 아니라 번들 컨테이너도 있다. 필요할 때 살펴보자.
😀 소감 및 마무리
파일 시스템 매니저를 이용해서 만드는 내용들이 이번 포스팅 내용들과 굉장히 밀접하게
연관된 내용들이다. 다음에 파일 시스템 매니저를 사용할 때는
조금 더 목적에 맞는 컨테이너 디렉토리를 이용해보지.
출처
[iOS] 앱 샌드박스(App Sandbox)와 Container Directory
앱 샌드박스(App Sandbox)와 Container Directory개념에 대해 알아 보겠습니다. Sandbox 샌드박스(Sandbox)란 미국에서 어린아이를 보호하기 위해 모래통(Sandbox)에서만 놀도록 하는데서 유래한 보안 모델을 말
jinnify.tistory.com
App Sandbox | Apple Developer Documentation
Restrict access to system resources and user data in macOS apps to contain damage if an app becomes compromised.
developer.apple.com
[iOS] 앱 샌드박스와 iOS의 파일 시스템
App Sandbox + File System 오늘은 앱 샌드박스에 대한 개념을 정리해보고 앱 샌드박스 내부에서 파일들을 어떻게 관리하고 있는지 공식문서를 통해 정리해보려고 합니다. 살펴보려고 하는 문서는 File
jeonyeohun.tistory.com
File System Basics
File System Basics A file system handles the persistent storage of data files, apps, and the files associated with the operating system itself. Therefore, the file system is one of the fundamental resources used by all processes. APFS is the default file s
developer.apple.com
'iOS' 카테고리의 다른 글
DEFINES_MODULE was set 경고 (0) | 2025.03.02 |
---|---|
시뮬레이터 vs 에뮬레이터 (0) | 2025.01.26 |
리팩토링 결과 발표 (0) | 2025.01.11 |
패키지 만들기 (0) | 2025.01.07 |
Localization (1) | 2024.12.28 |