~/VibeHandbook
$39

앱 / 모바일

swift.org

Swift

개요

Swift는 iOS, iPadOS, macOS, watchOS, tvOS 전반의 앱을 만들기 위한 Apple의 현대적인 오픈소스 프로그래밍 언어이며, 점점 더 서버 사이드와 크로스 플랫폼 코드에도 쓰이고 있습니다. Apple 개발의 기본 언어로서 Objective-C를 대체했으며, 깔끔하고 표현력 있는 문법에 강력한 정적 타이핑과 메모리 안전성을 결합했습니다. Xcode(또는 오픈소스 툴체인이 있는 임의의 에디터)에서 Swift를 작성해 App Store에 배포합니다.

강점

  • 설계부터 안전합니다. 옵셔널(optional)이 "값 없음"을 명시적으로 만들고, 컴파일러가 통째로 한 부류의 크래시를 잡아냅니다.
  • 빠릅니다. 네이티브 머신 코드로 컴파일되어 C에 가까운 성능을 냅니다.
  • 타입 추론, 클로저, 제네릭, 값 타입을 갖춘 표현력 있고 읽기 좋은 문법.
  • async/await와 액터(actor)를 통한 일급(first-class) 동시성.
  • 모든 Apple 프레임워크와 최신 OS 기능에 출시 첫날부터 완전히 접근 가능.

트레이드오프

  • 생태계가 Apple 플랫폼 중심입니다. 크로스 플랫폼 지원이 존재하긴 하지만 훨씬 덜 성숙합니다.
  • 앱 개발의 툴링은 사실상 Xcode와 Mac을 의미합니다.
  • 언어가 빠르게 발전하다 보니 버전 간 마이그레이션 작업이 가끔 생겼습니다.
  • 옵셔널, 값 대 참조 의미론, 동시성을 둘러싼 실질적인 학습 곡선이 있습니다.

언제 사용하나

어떤 Apple 플랫폼이든 네이티브 앱을 만들면서 최고의 성능, 최신 OS 기능, 그리고 안전하고 유지보수하기 좋은 코드베이스를 원할 때 Swift를 선택하세요. 잘 다듬어진 iPhone이나 Mac 앱을 위한 올바른 기본 선택입니다.

바이브 코딩 적합성

Swift는 AI 보조 코딩에 잘 맞습니다. 엄격한 컴파일러가 모호한 실수를 모델에게 다시 붙여넣을 수 있는 구체적인 오류로 바꿔주기 때문입니다. 안전한 언래핑을 위해 옵셔널과 guard를 활용하고, 콜백 피라미드 대신 값 타입(struct)과 async/await를 선호하며, 뷰 로직을 모델 밖에 두도록 어시스턴트에게 요청하세요. 컴파일러가 엄격하므로, 빌드에 성공한 생성 코드는 대개 구조적으로 견고합니다. 오류가 각 반복(iteration)을 안내하도록 두세요.

struct Todo: Identifiable {
    let id = UUID()
    var title: String
    var done = false
}

func pending(_ todos: [Todo]) -> [Todo] {
    todos.filter { !$0.done }
}