맥북 기본 용량(256GB / 512GB)으로 웹, 앱, AI 에이전트 개발을 병행하다 보면 어느 순간 "시스템 디스크 용량이 부족합니다"라는 공포의 알림을 만나게 됩니다. Xcode DerivedData, Android AVD 가상 머신, Docker 이미지, Node.js 패키지 캐시가 순식간에 수십GB를 차지하기 때문입니다.
본 글에서는 외장 SSD를 고성능 개발 환경으로 탈바꿈하는 방법부터 주요 개발 도구별 심볼릭 링크(Symbolic Link) 이관법, 그리고 한 줄 명령어 기반 용량 다이어트 노하우까지 실전 가이드를 정리합니다.
1. 맥북 개발 용량 폭증의 주범들
개발자 맥북에서 '시스템 데이터'나 '기타' 용량이 폭증하는 대표적인 원인 디렉토리들은 다음과 같습니다.
- Xcode DerivedData & CoreSimulator: 빌드 아티팩트 및 가상 디바이스 데이터 (주로
~/Library/Developer/) - 보통 20~50GB 차지 - Android Studio & SDK: AVD 이미지, Gradle 빌드 캐시 (
~/.android/,~/.gradle/) - 15~40GB 차지 - Docker Desktop: 컨테이너 및 이미지 레이어 (
~/Library/Containers/com.docker.docker/) - 20~60GB 이상 - 패키지 매퍼 캐시: npm, yarn, cargo, pip, homebrew 캐시 폴더 - 10~30GB
이 캐시 폴더들은 무작정 삭제해도 빌드/실행 시 다시 생성되므로 결국 용량 문제가 반복됩니다. 근본적인 해결책은 외장 SSD로 경로를 이관하거나 자동화된 정기 청소 스크립트를 운용하는 것입니다.
2. 외장 SSD 포맷 및 APFS 권한 최적화
외장 SSD를 개발용 드라이브로 사용하기 위해 가장 먼저 해야 할 일은 파일시스템 포맷입니다.
exFAT vs APFS 비교
- exFAT: Windows/Mac 공용으로 쓸 수 있으나, Unix 퍼미션(Permission) 및 심볼릭 링크 지원이 불완전하여 Flutter/Xcode 빌드 시 권한 오류가 발생합니다.
- APFS (Apple File System): Mac 전용 파일시스템으로 심볼릭 링크, 스냅샷, 대용량 I/O에 최적화되어 있습니다. 개발 환경 이관 시 APFS 포맷이 필수입니다.
[디스크 유틸리티] → 외장 SSD 선택 →
APFS (또는 대문자 구분 시 APFS 대소문자 구분) 포맷 설정 후 진행합니다.
3. 주요 개발 툴별 외장 드라이브 이관 가이드
외장 드라이브 마운트 경로가 /Volumes/ExternalDrive 라고 가정했을 때, 심볼릭 링크(ln -s)를 활용한 이관 명령어입니다.
① Xcode DerivedData 및 iOS Simulator (CoreSimulator) 이관
iOS/iPadOS 시뮬레이터 가상 기기 데이터(CoreSimulator)와 Xcode 빌드 아티팩트(DerivedData)를 외장 SSD로 이관하는 방법입니다.
# 0. Xcode 및 시뮬레이터 완전 종료
killall Simulator 2>/dev/null
# 1. Xcode DerivedData 심볼릭 링크 이관
mkdir -p /Volumes/ExternalDrive/Developer/Xcode/DerivedData
rm -rf ~/Library/Developer/Xcode/DerivedData
ln -s /Volumes/ExternalDrive/Developer/Xcode/DerivedData ~/Library/Developer/Xcode/DerivedData
# 2. iOS CoreSimulator (Apple 가상 기기 데이터) 이관
mkdir -p /Volumes/ExternalDrive/Developer/CoreSimulator
cp -r ~/Library/Developer/CoreSimulator/* /Volumes/ExternalDrive/Developer/CoreSimulator/ 2>/dev/null
rm -rf ~/Library/Developer/CoreSimulator
ln -s /Volumes/ExternalDrive/Developer/CoreSimulator ~/Library/Developer/CoreSimulator
② Android AVD (가상 디바이스) 이관
# 1. 외장 SSD로 AVD 이동
mkdir -p /Volumes/ExternalDrive/Android/avd
cp -r ~/.android/avd/* /Volumes/ExternalDrive/Android/avd/
rm -rf ~/.android/avd
# 2. 심볼릭 링크 연결
ln -s /Volumes/ExternalDrive/Android/avd ~/.android/avd
③ Docker Desktop 저장소 이관
Docker Desktop 앱 실행 후: Settings → Resources → Advanced → Virtual disk limit / Data location에서 경로를 외장 SSD 경로(/Volumes/ExternalDrive/Docker)로 지정한 후 Apply & restart를 누릅니다.
④ Cargo (Rust) 및 Package Cache 이관
# Cargo root 디렉토리 환경변수 또는 심볼릭 링크
mkdir -p /Volumes/ExternalDrive/Cargo
ln -s /Volumes/ExternalDrive/Cargo ~/.cargo
4. 명령어 한 줄로 끝내는 개발자 용량 다이어트
외장 SSD 이관 없이도 주기적으로 수십 GB의 찌꺼기를 지워주는 명령어 모음입니다.
# 1. Xcode 빌드 캐시 및 시뮬레이터 찌꺼기 삭제
rm -rf ~/Library/Developer/Xcode/DerivedData/*
xcrun simctl erase all
# 2. CocoaPods 및 Gradle 캐시 비우기
pod cache clean --all
rm -rf ~/.gradle/caches/
# 3. Docker 미사용 이미지 & 컨테이너 정리
docker system prune -a --volumes -f
# 4. Homebrew 미사용 구버전 패키지 정리
brew cleanup -s
5. 결론 및 주의사항
- 외장 SSD 마운트 확인: 심볼릭 링크가 설정된 상태에서 외장 SSD를 뽑은 채 Xcode나 Android Studio를 실행하면 경로 에러가 발생할 수 있습니다. 항상 외장 SSD를 먼저 연결한 후 개발 툴을 실행하세요.
- 정기적인 다이어트: 한 달에 한 번씩 위 명령어를 실행하는 것만으로도 최소 30GB 이상의 시스템 공간을 확보할 수 있습니다.
맥북 용량 부족 때문에 개발 흐름이 끊기셨던 분들에게 본 가이드가 도움이 되기를 바랍니다!