2P by GN⁺ 3일전 | ★ favorite | 댓글 1개
  • Swift 버전 설치, 관리, 업데이트 과정을 간소화해주는 공식 버전 관리 도구 swiftly의 첫 번째 안정 버전이 출시
  • 기존에는 Xcode를 통해서만 Swift 최신 버전 사용 가능했으나, 이제는 macOS 및 다양한 Linux 배포판에서 독립적인 설치가 가능해짐
  • Swift 커뮤니티 도구로 시작된 swiftly는 이제 Swift 공식 GitHub 조직에 통합되어 공식 지원됨
  • Xcode 없이도 Swift 설치 가능하며, 개발 도구 및 서버 환경 등 다양한 용도로 손쉽게 버전 관리 가능함

swiftly 주요 기능 요약

  • 여러 버전의 Swift 도구 체인을 설치 및 전환 가능
    • swiftly install, swiftly use, swiftly list-available 등의 명령어 제공
    • .swift-version 파일을 통해 팀원 간 일관된 버전 사용 강제 가능
  • 스냅샷 버전과 구버전도 설치 가능
    • 예: main-snapshot-2025-03-25 같은 버전도 쉽게 설치 가능
    • swiftly run +버전명 문법을 통해 특정 버전으로 일시적 실행 가능
  • 자동 업데이트 기능 포함
    • swiftly self-update 명령어로 최신 기능 반영 가능
  • macOS와 다양한 Linux 배포판 지원
    • Ubuntu, Debian, Fedora, Red Hat Enterprise Linux, Amazon Linux 등 지원

swiftly는 Swift로 작성된 자체 설치형 CLI 도구

  • swiftly 자체도 Swift 언어로 구현됨
    • 파일 시스템 작업: Foundation 모듈 사용
    • HTTP 요청: Async HTTP Client 사용
    • 버전 정보 조회: Swift OpenAPI Generator 사용
    • 압축 해제: libarchive와 C 연동
  • 셀 스크립트 없이 자체 설치형 바이너리로 제공 → 플랫폼 간 안정성 향상
  • --help와 같은 깔끔한 CLI 인터페이스 제공

리눅스 배포판 호환성과 간편한 설치

  • Swift.org는 운영체제는 감지할 수 있지만, Linux 배포판은 감지 불가능
  • 이를 위해 Swift Static Linux SDK를 사용하여 광범위한 배포판에서 작동하는 바이너리 제공
  • 사용자는 웹사이트에서 명령어 복사-붙여넣기만으로 설치 가능

앞으로의 계획 및 오픈소스 활동

  • Xcode 외부에서 Swift를 설치하는 표준 방법으로 swiftly를 채택
  • CI/CD 환경, 프록시 서버, 커스텀 설치 경로 설정 등도 지원됨 → 엔터프라이즈 환경에도 적합
  • 오픈소스로 개발 중이며 GitHub에서 이슈 제기 및 PR 가능
  • Swift 포럼에서 Q&A 및 논의 참여 가능

특별히 swiftly를 만든 Patrick Freed에게 감사를 전함. Swift 커뮤니티가 Swift를 더욱 빛나게 만들고 있음

Hacker News 의견
  • Steve Klabnik이 최근 Oxide and Friends 에피소드에서 초기 Rust 팀과 함께 이러한 도구의 중요성을 인식한 것에 대해 이야기했음. 이는 Swift와 Apple이 Apple 생태계 외부에서 일반 목적 언어로서의 가능성을 높이려는 지속적인 노력의 긍정적인 신호임
    • Swift가 Linux에서 잘 작동하고, 작성하는 것이 재미있으며, C, C++, Java와의 상호 운용성이 뛰어남
    • 덜 좋아하는 점: 컴파일 시간, 바이너리 크기, 런타임 타입 검사 오버헤드 (Codable 성능이 애플리케이션에 문제를 일으켰음), 비동기/대기 처리의 어려움
  • Swift에 무슨 일이 있었는지 궁금함. 예전에는 많이 들었는데, 이제는 그렇지 않음. 아마도 내가 에코 챔버에 있는 것일 수도 있음
  • Apple 세계 외부에서 Swift를 사용하는 것이 가능했으면 좋겠음
  • 이것이 Swift의 UV와 같은 것인지, 어떤 이점이 있는지, Xcode를 버리고 대신 사용할 수 있는지 궁금함
  • Swift가 처음 나왔을 때 이후로 보지 않았지만, 문서가 더 나아졌는지 궁금함. Stack Overflow에서 명령어를 읽었지만 문서에서 찾을 수 없거나, 문서에 나와 있어도 유용한 정보가 없었음
  • Zig는 내장 도구가 있어서 사람들이 많이 좋아하는 이유 중 하나임. 언어와 함께 Day 1부터 제공됨
  • 이는 Swift 생태계에 큰 도움이 될 것임. 필요에 따라 언어 버전을 추가 및 제거할 수 있는 기능이 매우 편리하며, 더 많은 언어가 이를 추가하고 있어 기쁨
  • UIKit을 가져와야 하는 코드의 유닛 테스트를 시뮬레이터 외부에서 실행할 수 있게 될지 궁금함
  • Windows 지원이 있으면 사람들이 시도해볼 수 있을 것임