# 애플, Swift Build 오픈 소스화 발표

> Clean Markdown view of GeekNews topic #19009. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=19009](https://news.hada.io/topic?id=19009)
- GeekNews Markdown: [https://news.hada.io/topic/19009.md](https://news.hada.io/topic/19009.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-02-02T09:19:39+09:00
- Updated: 2025-02-02T09:19:39+09:00
- Original source: [swift.org](https://www.swift.org/blog/the-next-chapter-in-swift-build-technologies/)
- Points: 5
- Comments: 4

## Summary

애플은 Swift Build라는 강력한 빌드 엔진을 오픈 소스로 공개하여 다양한 플랫폼에서의 빌드 지원을 강화하고자 합니다. Swift Build는 Xcode의 빌드 엔진으로 사용되며, Swift Package Manager와의 통합을 통해 효율적이고 신뢰성 있는 빌드를 제공합니다. 또한, 애플은 커뮤니티와 협력하여 모든 플랫폼과 프로젝트 모델에서 빌드 시스템을 개선하고자 하며, GitHub에서 관련 자료와 기여 방법을 제공하고 있습니다.

## Topic Body

- Swift는 다양한 플랫폼을 지원하는 언어로 인기를 얻고 있으며, 다양한 임베디드 장치와 운영 체제에서 사용 가능  
- Apple은 Swift Build라는 강력하고 확장 가능한 빌드 엔진을 오픈 소스로 공개  
- Swift Build는 Xcode의 빌드 엔진으로 사용되며, "App Store 앱 및 Apple 자체 운영체제 빌드"에도 활용됨.  
   - Linux와 Windows 타겟 빌드도 지원  
- # Swift Build의 핵심 기능  
  - 빌드 시스템은 프로젝트 설명과 소스 코드를 명령줄 도구, 라이브러리, 애플리케이션 같은 출력물로 변환하는 역할을 함  
  - Swift Build는 Swift Package Manager나 Xcode 같은 상위 클라이언트가 요청한 빌드를 계획하고 실행하는 인프라 구성 요소  
  - Swift 컴파일러와의 강력한 통합을 통해 Swift 프로젝트의 빌드를 신뢰성 있고 효율적으로 조정  
  - 다양한 제품 유형을 지원하며, 고급 빌드 구성 옵션을 제공  
  - Swift와 C 코드 빌드 시 병렬성을 극대화하는 빌드 그래프 최적화를 포함  
- # Swift Build의 로드맵  
  - Xcode의 빌드 엔진과 비교하여 Swift Package Manager의 빌드 엔진은 비교적 단순함  
  - Apple 플랫폼에서 두 가지 다른 패키지 빌드 방법이 사용자 혼란을 초래  
  - Xcode의 빌드 엔진을 Swift 프로젝트에 기여하고 Swift 컴파일러와 함께 오픈 소스로 개발하여 이러한 문제를 해결하고자 함  
  - SwiftPM은 모든 플랫폼에서 통합된 빌드 실행 엔진을 제공할 기회를 가지게 됨  
  - 이 변화는 사용자에게 투명하게 작용하며, 모든 기존 패키지와의 완전한 호환성을 유지  
  - 새로운 기능과 개선 사항을 모든 플랫폼과 도구에 걸쳐 제공할 수 있는 기반을 마련  
  - Swift Build를 **SwiftPM의 대체 빌드 엔진으로 통합하는 PR 제출**  
  - 커뮤니티와 협력하여 모든 플랫폼과 프로젝트 모델에서 향후 도구 개선의 혜택을 누릴 수 있도록 빌드 시스템 통합 작업을 완료하고자 함  
- # 참여 초대  
  - Swift 코드 빌드 방식을 계속 발전시키기 위해 커뮤니티와 협력하기를 기대함.  
  - GitHub의 Swift 조직에서 `swift-build` 저장소를 찾을 수 있으며, 빌드 및 기여 방법을 설명하는 README와 문서가 포함되어 있음.  
  - 풀 리퀘스트와 이슈를 통한 기여를 환영하며, Swift 포럼에서 개선에 대한 피드백과 아이디어를 받고자 함.  
  - Swift의 빌드 시스템에 대한 흥미로운 새로운 장이며, Swift의 모든 잠재력을 열어줄 것으로 기대함.

## Comments



### Comment 34091

- Author: ganadist
- Created: 2025-02-03T15:42:53+09:00
- Points: 1

https://llvm.org/devmtg/2016-11/Slides/Dunbar-NewArchitectureForBuildingSoftware.pdf 의 12 page. 가 중요한 내용인거 같네요.  
  
Traditional UNIX compiler/build system model  
• Compiler runs as separate process  
  • Primitive mechanisms for communicating dependencies  
  • Fixed input/output pipeline defined by command line  
• This is an API ...  
  • ... and we haven’t changed it in decades  
• We ❤ breaking APIs  
  
Java 쪽은 코드사이의 의존성을 알려주는 API가 있어서 빌드도구 들에게 어떻게 하면 incremental build가 되는지 알려주도록 되어 있는 것 같은데,  
ex: [Gradle](https://github.com/gradle/gradle/blob/master/platforms/jvm/language-java/src/main/java/org/gradle/api/internal/tasks/compile/JdkTools.java#L85)  
  
Native 빌드에도 해당 방법을 적용하는 방향으로 가야할 것 같습니다.

### Comment 34026

- Author: nemorize
- Created: 2025-02-02T10:29:23+09:00
- Points: 2

그러니까... 요약하자면 xcode는 지금과 다를바 없이 쓰레기라는거죠?  
ㅠㅠㅠㅠㅠㅠㅠ

### Comment 34031

- Author: roxie
- Created: 2025-02-02T15:55:27+09:00
- Points: 1
- Parent comment: 34026
- Depth: 1

zzz

### Comment 34018

- Author: neo
- Created: 2025-02-02T09:19:39+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=42899703) 
- Swift가 "모든 것에 좋지만 Apple 플랫폼에 더 좋음"이라는 인식이 언어에 해로울 수 있음. 이는 Swift 생태계에 더 많은 사람을 끌어들이지 못함
  - 경쟁자들은 더 오픈 소스적이고, 기여자가 많으며, 범위가 좁음
  - Xcode 같은 도구를 오픈 소스로 만들지 않으면 다른 언어와의 격차가 커질 것임

- Swift는 멋진 언어임
  - "index out of range" 오류 시, 오류 메시지가 어디서 발생했는지 알려주지 않음
  - Golang은 오류가 발생한 파일과 줄 번호를 알려줌

- Swift의 상황이 초기 C# 시절을 떠올리게 함
  - C#도 오픈 소스와 크로스 플랫폼으로 홍보되었으나 기대에 미치지 못함

- Swift가 Apple의 LLVM 포크가 아닌 일반 LLVM을 기반으로 구축되었으면 좋겠음

- Swift는 Xcode와의 분리를 목표로 해야 함
  - Xcode는 3.1점으로 과대평가된 면이 있음

- SwiftPM의 새로운 릴리스는 모든 플랫폼에서 통합된 빌드 실행 엔진을 제공할 기회를 줌
  - 이는 Swift의 멀티플랫폼 생태계를 구축하는 열쇠가 될 것임

- Xcode 없이 Swift 개발이 가능한 길을 열 수 있는지 궁금함

- Swift 빌드가 Swift의 도구 및 언어 서버와 얼마나 잘 통합되어 있는지 명확하지 않음
  - 언어 서버는 이미 오픈 소스임

- Swift가 Apple로부터 독립되어 기쁨
  - 크로스 플랫폼 프로젝트에서 URLSession.shared.data가 Linux에서 컴파일되지 않아 다른 언어로 전환한 경험이 있음

- Swift가 임베디드 시스템에 진지한지 궁금함
