M1 맥북 에어 기본형(8GB, 256GB) 모델을 사용하다 보니 어느새 용량의 한계가 느껴졌습니다. 특히, Xcode로 개발 작업을 하다 보면 빌드 데이터와 캐시 파일들이 쌓여서 여유 공간이 빠르게 줄었습니다. 이를 어떻게 하면 적은 비용으로 해결할 수 있을까 고민하다가, 외장 SSD와 심볼릭 링크를 활용하는 방법이 답이 될 수 있겠다는 생각을 하게 되었습니다.
이 글에서는 Xcode의 DerivedData, Archives, iOS DeviceSupport와 같은 주요 폴더를 외장 SSD로 옮겨서 저장 공간을 확보하는 방법을 소개합니다.
1. 외장 SSD로 옮길 Xcode의 주요 폴더
먼저, Xcode에서 용량을 많이 차지하는 주요 폴더들을 살펴보겠습니다. 이들은 빌드 및 디버깅 데이터와 관련이 있으며, 이동 후에도 심볼릭 링크를 통해 원래 위치처럼 접근할 수 있습니다.
DerivedData 폴더
- 경로: ~/Library/Developer/Xcode/DerivedData
- 설명: 이 폴더에는 빌드 과정에서 생성되는 임시 파일들이 저장됩니다. 프로젝트별 중간 결과물을 캐싱하여 빌드 성능을 높이는 역할을 합니다. 용량이 빠르게 쌓일 수 있어 주기적인 정리나 외장 하드 이동이 유용합니다.
Archives 폴더
- 경로: ~/Library/Developer/Xcode/Archives
- 설명: 앱의 최종 빌드 아카이브 파일을 보관하는 폴더입니다. 주로 앱 배포나 테스트 목적으로 사용되며, 필요하지 않은 아카이브 파일을 외장 SSD로 이동하면 디스크 공간을 절약할 수 있습니다.
iOS DeviceSupport 폴더
- 경로: ~/Library/Developer/Xcode/iOS DeviceSupport
- 설명: iOS 기기와 연결해 디버깅할 때 필요한 데이터가 저장되는 폴더입니다. 여러 버전의 iOS 디버깅 정보를 저장하고 있어 큰 용량을 차지할 수 있습니다.
CoreSimulator/Devices 폴더
- 경로: ~/Library/Developer/CoreSimulator/Devices
- 설명: 이 폴더에는 Xcode 시뮬레이터에서 생성되는 디바이스 데이터가 저장됩니다. 각 디바이스의 상태와 설정 정보가 포함되어 있어, 시뮬레이터 사용 시 용량이 상당히 증가할 수 있습니다.
2. 외장 SSD로 이동 및 심볼릭 링크 설정
이제 이 폴더들을 외장 SSD로 옮기고, Xcode가 기존 위치에 있는 것처럼 인식할 수 있도록 심볼릭 링크를 만드는 과정을 안내합니다.
외장 SSD에 Xcode 폴더 구조 만들기
먼저 외장 SSD에 SSD/Library/Developer/Xcode 경로를 생성해 주세요. 터미널에서 아래 명령어를 사용해 폴더 구조를 만들어줍니다.
mkdir -p /Volumes/SSD/Library/Developer/Xcode
mkdir -p /Volumes/SSD/Library/Developer/CoreSimulator
각 폴더 이동 및 링크 생성
이제 각 폴더를 외장 SSD로 이동하고, 원래 위치에 심볼릭 링크를 생성합니다. 이렇게 하면 Xcode는 여전히 해당 경로에서 파일을 불러올 수 있습니다.
DerivedData 폴더 이동 및 심볼릭 링크 생성
mv ~/Library/Developer/Xcode/DerivedData /Volumes/SSD/Library/Developer/Xcode/
ln -s /Volumes/SSD/Library/Developer/Xcode/DerivedData ~/Library/Developer/Xcode/DerivedData
Archives 폴더 이동 및 심볼릭 링크 생성
mv ~/Library/Developer/Xcode/Archives /Volumes/SSD/Library/Developer/Xcode/
ln -s /Volumes/SSD/Library/Developer/Xcode/Archives ~/Library/Developer/Xcode/Archives
iOS DeviceSupport 폴더 이동 및 심볼릭 링크 생성
mv ~/Library/Developer/Xcode/iOS\ DeviceSupport /Volumes/SSD/Library/Developer/Xcode/
ln -s /Volumes/SSD/Library/Developer/Xcode/iOS\ DeviceSupport ~/Library/Developer/Xcode/iOS\ DeviceSupport
CoreSimulator/Devices 폴더 이동 및 심볼릭 링크 생성
mv ~/Library/Developer/CoreSimulator/Devices /Volumes/SSD/Library/Developer/CoreSimulator/
ln -s /Volumes/SSD/Library/Developer/CoreSimulator/Devices ~/Library/Developer/CoreSimulator/Devices
3. 주의사항
- SSD 연결 상태: 외장 SSD가 분리되면 심볼릭 링크를 통해 연결된 폴더들이 접근할 수 없게 되므로, 작업 중에는 SSD가 안정적으로 연결된 상태를 유지해야 합니다.
- 읽기/쓰기 권한 확인: Finder에서 외장 SSD의 읽기/쓰기 권한을 확인하고, 필요시 읽기/쓰기 권한으로 설정하세요.
- 디스크 접근 권한 설정: Xcode가 외장 SSD의 파일에 접근할 수 있도록 시스템 설정 > 보안 및 개인정보 보호 > 전체 디스크 접근 권한에서 Xcode에 SSD 접근 권한을 부여하는 것이 좋습니다.