본문 바로가기
카테고리 없음

Apple Silicon 가속: Xcode 빌드 시간을 단축하는 실전 팁 총정리

by 유저A 2025. 7. 5.

야간 조명 아래 MacBook Pro에서 Swift 코드와 빌드 로그를 확인 중인 개발자 책상 모습.

 

Apple Silicon(M1, M2, M3)의 등장으로 맥 개발 환경은 획기적인 전환점을 맞이했습니다. 특히 macOS 및 iOS 앱 개발을 위한 Xcode 사용에 있어서, 컴파일 속도는 전체 개발 생산성에 직접적인 영향을 미칩니다.
하지만 아무리 빠른 칩을 사용해도, 프로젝트 구성과 설정이 최적화되지 않으면 그 성능을 제대로 활용할 수 없습니다. 이 글에서는 Apple Silicon의 성능을 극대화하면서 Xcode 빌드 시간을 효과적으로 줄이는 실전 전략을 다룰 것입니다.

Apple Silicon이 Xcode 빌드에 주는 기본적 이점

Apple Silicon은 통합 메모리 아키텍처와 다수의 고성능/고효율 코어, 그리고 전용 미디어 엔진을 기반으로 Xcode와 같은 무거운 개발 툴에 최적화된 구조를 갖추고 있습니다.

  • 멀티스레드 컴파일에 적합한 고성능 코어 구성
  • 빠른 SSD 입출력 처리 속도 (특히 MacBook Pro 라인업)
  • 낮은 발열로 인한 지속적인 성능 유지
  • Swift, LLVM, Clang 컴파일러와의 아키텍처 친화성

하지만 하드웨어만으로 모든 게 해결되는 것은 아닙니다. 빌드 속도는 설정, 프로젝트 구조, 외부 라이브러리 구조 등 다양한 요인에 따라 좌우됩니다.

팁 1: DerivedData 디렉토리 전략적으로 관리하기

Xcode는 프로젝트별 임시 빌드 데이터를 DerivedData 디렉토리에 저장합니다. 초기에는 이로 인해 속도가 빨라지지만, 프로젝트가 커지면 이 디렉토리가 불필요하게 무거워지고 빌드 시간이 늘어날 수 있습니다.

  • 프로젝트마다 고유한 DerivedData 경로를 설정하고 자동 삭제 스크립트를 구성합니다.
  • 오래된 DerivedData는 아래 명령어로 정리하세요:
    rm -rf ~/Library/Developer/Xcode/DerivedData/*
  • CI/CD 환경에서는 중요한 컴파일 캐시만 추출하여 저장함으로써 다음 빌드 시간을 절감할 수 있습니다.
  • SSD가 아닌 외장 스토리지나 NVMe 디스크에 저장 경로를 지정하면 I/O 성능도 향상됩니다.

팁 2: 병렬 빌드 활성화 및 인덱싱 최소화

Apple Silicon은 8~16개의 고성능 코어를 동시에 사용할 수 있어 병렬 빌드에 유리합니다. 이 기능이 자동으로 활성화되지 않도록 주의가 필요합니다.

  • Xcode 환경설정 > Locations에서 DerivedData 경로를 빠른 드라이브로 변경
  • SWIFT_COMPILATION_MODE를 개발 중에는 incremental, 릴리즈 시에는 wholemodule로 설정
  • 자동 인덱싱 기능은 아래 명령어로 비활성화 가능:
    defaults write com.apple.dt.Xcode IDEIndexDisable 1

인덱싱은 코드 자동완성에는 도움이 되지만, 빌드 속도에는 악영향을 줄 수 있으므로 필요에 따라 전략적으로 조절해야 합니다.

팁 3: Apple Silicon 최적화된 바이너리 사용

아직도 많은 써드파티 라이브러리들이 Intel 아키텍처로만 제공됩니다. 이를 사용할 경우 Rosetta 2로 강제 변환되며 성능이 하락합니다.

  • lipo -info [framework 파일 경로]로 아키텍처 확인
  • arm64 아키텍처가 없는 라이브러리는 가능하면 소스 레벨에서 다시 빌드
  • CocoaPods, Carthage, SwiftPM 등 의존성 관리 도구를 혼용하지 말고 하나로 통일

팁 4: Apple Silicon 네이티브 Xcode 버전 사용 확인

의외로 많은 개발자가 구버전 Xcode를 그대로 사용하거나, Rosetta 모드에서 실행 중입니다. 이 경우 빌드 속도는 절반 이하로 떨어집니다.

  • Activity Monitor > Xcode > "아키텍처" 항목에서 Apple 또는 Intel 여부 확인
  • Rosetta 모드는 필요할 때만 사용하고, 기본 실행은 반드시 ARM 네이티브로 설정
  • 최신 Xcode는 Apple Developer 페이지에서 직접 다운로드 권장

팁 5: 고속 외장 SSD 또는 RAM 디스크 활용

내장 SSD 공간이 부족하면 전체 시스템 속도가 하락합니다. 특히 빌드 관련 파일이 자주 쓰기/삭제를 반복하므로, 빠른 저장 장치를 사용하는 것이 좋습니다.

  • Thunderbolt 3/4 NVMe SSD를 사용하여 DerivedData 디렉토리를 외장으로 이동
  • 초고속 테스트 환경에서는 RAM 디스크 사용도 고려:
    diskutil erasevolume HFS+ 'RAMDisk' `hdiutil attach -nomount ram://2621440`

추가 팁: 소스 코드 구조 및 린크 최적화

  • 메인 프로젝트와 서브모듈을 분리하여 빌드 스코프를 최소화
  • Swift 패키지 모듈화를 통해 컴파일 단위 분할
  • Other Linker Flags 최적화: -dead_strip 플래그 활용으로 불필요한 코드 제거

맺음말

Apple Silicon은 그 자체로 놀라운 성능을 제공하지만, 개발자의 최적화 노력 없이는 성능의 절반도 활용할 수 없습니다. Xcode 빌드 시간을 단축하는 것은 단순히 기다림을 줄이는 것 이상의 의미를 가집니다. 개발 주기 전체가 빨라지고, 디버깅과 릴리즈 속도까지 영향을 받습니다.

여러분은 어떤 빌드 최적화 전략을 사용하고 계신가요? 혹시 소개한 팁 외에 자신만의 비법이 있다면 댓글로 공유해 주세요!