스위프트 4는 스위프트 패키지 매니저를 개선하고, 새로운 호환성 모드를 제공한다. 애플은 스위프트 4가 한층 더 안정적이며, 표준 라이브러리도 개선했다고 밝혔다. 이번 버전은 스위프트 3과 소스 호환성이 크며, 애플의 엑스코드 9 IDE 일부로 발표됐다.
스위프 3에 도입된 스위프트 패키지 매니저는 배포 코드용 툴이다. 스위프트 빌드 시스템과 통합되어 다운로드나 컴파일, 의존성 연결 등의 작업을 자동화한다. 이번 스위프트 4의 주요 개선사항은 다음과 같다.
- 더 완성도 높은 패키지 API로 패키지에 새로운 설정을 지정할 수 있다. 이들 설정은 개발자에게 패키지 구축과 디스크 상의 소스 조직에 대한 더 많은 통제권을 부여한다.
- 동시에 여러 패키지를 개발하는 것이 더 쉬워졌다.
- 패키지 제품의 형식화로, 패키지가 클라이언트에 어떤 라이브러리를 퍼블리싱하는지 통제할 수 있다.
- 맥OS 상에 구축한 패키지는 이제 샌드박스로 실행되어 네트워크 액세스와 파일 시스템 수정을 차단해 악성코드 감염 가능성을 줄여준다.
스위프트 4의 새로운 호환성 모드는 코드를 새 버전 컴파일러에서 사용할 수 있도록 수정해야 하는 수고를 덜어준다. 스위프트 3.x 컴파일러로 만든 대부분 소프 파일을 수용하는 스위프트 3.2 모드와 스위프트 4와 API 변경 사항을 포함하는 스위프트 4.0 모드 두 가지를 지원한다.
애플은 많은 프로젝트에서 일부 소스 마이그레이션이 필요하겠지만, 소스 변경의 수는 이전 스위프트 릴리즈 간의 변경과 비교해 “적당한” 수준일 것이라고 밝혔다. 스위프트 4의 호환성 모드 도입으로 개발자들은 마이그레이션 속도를 좀 더 여유있게 조정할 수 있게 됐다.
이외에 개발언어 측면에서도 많은 개선이 이루어졌다.
- ‘String’을 더 빠르고 쉽게 실행할 수 있으며, 유니코드 교정을 포함하며 서브스트링의 개발과 사용도 지원한다.
- Collection 타입의 사용과 관리 개선
- 메모리에 대한 배타적인 액세스 강화. 잠재적인 변수 수정 역시 배타적이어야 한다.
- ‘struct’와 ‘enum’ 타입 아카이브 기능
- JSON과 같은 외부 포맷에 대한 안전 타이핑 직렬화
- 프로토콜 지향 정수로 Interger API를 정리해 범용 프로그램에 좀 더 유용해짐.
editor@itworld.co.kr