Swift 6는 성능·안전성·플랫폼 확장에 중점을 둔 메이저 릴리스로, Swift 5 대비 언어, 표준 라이브러리, 디버깅, 플랫폼 지원 등 다방면에서 개선이 이루어졌습니다.
1. 언어(Language) 변화
- 엄격 동시성 검사(strict concurrency): 옵트인 언어 모드에서 데이터 경합(data race)을 컴파일 오류로 진단하며,
Sendable
추론과 컴파일러 분석이 강화되어 잘못된 동시성 코드를 방지합니다 [1]. - Typed throws: 함수 시그니처에 던지는 에러 타입을 명시할 수 있어, 제네릭 코드에서 에러 전파가 정확해지고 메모리 제약 환경(임베디드 등)에서 유용합니다 [1].
- 소유권(Ownership) 개선: Swift 5.9의
~Copyable
비복사 타입 지원을 제네릭 시스템과 통합하여, 복사 가능·불가능 타입을 모두 다루는 범용 코드를 작성할 수 있습니다 [1]. - C++ 상호 운용성 확장: C++ 무브-온리(move-only) 타입, 가상 함수, 기본 인자,
std::map
·std::optional
등 표준 라이브러리 타입을 네이티브로 다룹니다 [1]. - Embedded Swift 프리뷰: 마이크로컨트롤러용 경량 언어 서브셋을 ARM·RISC-V 타겟에서 지원하며, 런타임 의존성을 최소화해 메모리 제약 환경에 적합합니다 [1].
- 128비트 정수 추가:
Int128
·UInt128
타입이 모든 플랫폼에서 동일한 API로 제공됩니다 [1]. - 생산성 향상 문법:
count(where:)
, 패킷 반복(pack iteration),@attached(body)
·표현식 매크로 등 코드 간결성과 확장성을 높이는 기능이 추가되었습니다 [1].
2. 표준 라이브러리(Standard Library) 변경
- 동시성 저수준 API: 새로운 동기화 라이브러리(Synchronization library)에 원자 연산(atomic)·뮤텍스 API가 포함되어 안전한 동시성 프로그래밍을 지원합니다 [1].
- Foundation 재구현: macOS·iOS 15의 Swift 구현을 Linux·Windows까지 확장하며,
JSONDecoder
,URL
,Calendar
등 코어 타입이 오픈소스로 통합되었습니다 [1]. - 신규 Foundation 라이브러리 선택:
FoundationEssentials
서브셋을 가져와 국제화·지역화 데이터 없이 더 작은 바이너리를 생성할 수 있습니다 [1]. - Swift Testing:
@Test
,#expect
,#require
같은 매크로 기반 테스트 API를 제공하는 새로운 테스트 라이브러리를 Swift 툴체인에 기본 포함합니다 [1].
3. 디버깅(Debugging) 개선
- @DebugDescription 매크로: LLDB의
p
명령 및 Xcode/VSCode 변수 뷰에서 사용자 정의 요약을 생성하는 매크로를 코드 내에 직접 작성할 수 있습니다 [1]. - 명시적 모듈 사용: 디버거 시작 시 컴파일된 모듈을 즉시 가져와 Clang 모듈 재컴파일 시간을 줄이고 초기
p
/po
명령 속도를 크게 향상시킵니다 [1].
4. 플랫폼 지원(Platform Support) 확대
- 정적 SDK for Linux: 외부 의존성 없이 독립 실행 가능한 정적 링킹 바이너리를 지원하여 컨테이너·내장 시스템 배포에 유리합니다 [1].
- 새 리눅스 배포판: Debian, Fedora, Ubuntu 24.04 공식 지원 및 테스트가 추가되었습니다 [1].
- Windows ARM64 빌드 최적화: 병렬 빌드를 기본 활성화해 다중 코어 환경에서 최대 10배 빠른 컴파일 성능을 제공합니다 [1].
Swift 6는 Swift 5의 기반 위에 안전성·성능·생산성을 대폭 강화하고, 임베디드·서버·크로스 플랫폼 영역까지 Swift 언어의 적용 범위를 확장한 릴리스입니다. 자세한 내용은 Swift.org의 Announcing Swift 6를 참고하세요 [1].
출처
[1] Announcing Swift 6 https://swift.org/blog/announcing-swift-6/
[2] What’s new in Swift 6.0.3? https://forums.swift.org/t/whats-new-in-swift-6-0-3/76599
[3] Swift 6: What’s New and How to Migrate – SwiftLee https://www.avanderlee.com/concurrency/swift-6-migrating-xcode-projects-packages/
[4] Releases · swiftlang/swift – GitHub https://github.com/swiftlang/swift/releases
[5] Swift 6 Official Release https://medium.com/@herlandro/swift-6-official-release-10133a838982
[6] New Features in Swift 6: What’s Changed for Developers? https://www.xceltec.com/technology/new-features-in-swift-6-whats-changed-for-developers/
[7] Swift 6 programming language is finally here; here is everything you need to know https://content.techgig.com/technology/swift-6-programming-language-is-finally-here-with-significant-updates-here-is-everything-you-need-to-know/articleshow/113515721.cms
[8] Swift 6 released with enhanced cross-platform support, new concurrency features, and more https://alternativeto.net/news/2024/9/swift-6-released-with-enhanced-cross-platform-support-new-concurrency-features-and-more/
[9] Migrating to Swift 6 | Documentation https://swift.org/migration
[10] Swift 6.1 Released https://swift.org/blog/swift-6.1-released/
답글 남기기