Computer >> 컴퓨터 >  >> 시스템 >> Mac

Swift 3로 앱 개발하기: 새 기능부터 학습 방법까지 완벽 정리

Swift는 macOS와 iOS 기기용 앱을 작성하는 데 사용되는 프로그래밍 언어입니다. Apple은 기기에서 최고의 성능과 효율을 끌어내기 위해 Swift를 직접 설계했으며, Swift 3는 이미 훌륭했던 기능 세트를 한층 더 발전시킨 버전입니다.

Swift 4의 새로운 소식

Swift 3로 앱 개발하기: 새 기능부터 학습 방법까지 완벽 정리

Apple의 언어 및 런타임 부문 수석 매니저인 Ted Kremenek은 "Swift가 오픈소스 프로젝트로 공개된 지 겨우 6개월이 지났습니다. 이는 단순히 소스 코드를 GitHub에 올려두는 것이 아니라, 앞으로 Swift의 발전을 이끌어갈 완전히 열린 커뮤니티를 만드는 것이 핵심이었습니다. Swift 3는 바로 그 커뮤니티의 산물로 태어난 첫 번째 메이저 업데이트입니다."라고 말했습니다.

Swift의 또 다른 중요한 변화는 더 이상 iOS와 OS X 개발에만 국한되지 않는다는 점입니다. Swift가 오픈소스화된 이후 Linux용 버전도 등장했으며, 이를 통해 서버 개발자들도 Swift를 활용할 수 있게 되었습니다.

Kremenek은 "오늘날 소프트웨어 생태계는 정말 다양합니다. 서버 개발이든 앱 개발이든, 우리는 Swift가 모든 사람을 위한 언어가 되기를 원합니다. 이번 업데이트는 Swift가 Linux에 포팅된 이후 첫 번째 메이저 업데이트입니다."라고 덧붙였습니다.

새 버전에 대한 자세한 내용은 'Swift 4로 앱 만드는 방법' 관련 글에서 확인할 수 있습니다.

Swift 3로 앱 작성하기: 새로운 Swift 3 API 언어로 기본기를 다지기

Swift 3로 앱 개발하기: 새 기능부터 학습 방법까지 완벽 정리

Swift 2 이하 버전을 사용해 온 개발자들을 놀라게 할 것은 Swift 3에서 언어 자체가 상당히 많이 변했다는 점입니다. Kremenek은 "Swift 3의 핵심은 코어 펀더멘털(기본기)을 탄탄하게 다지고, 그 위에 앞으로의 발전을 쌓아가는 것입니다. 우리는 Swift를 최고의 언어로 만들고 싶습니다."라고 강조했습니다.

Apple 개발자 도구 부문 수석 디렉터 Chris Lattner도 같은 입장입니다. "우리는 Swift의 핵심 경험을 훌륭하게 만들고 싶습니다. 이것은 결코 쉬운 문제가 아닙니다. 쉼표나 콜론 사용 여부만의 문제가 아니라 호환성의 문제이기도 합니다. 그래서 우리는 Swift를 영구적으로 유지할 수 있는 형태로 만들기 위해 모든 노력을 다하고 있습니다."

Swift 3에는 다음과 같은 주요 변화가 있습니다.

  • Swift 3의 API 접근 방식: 가장 큰 변화는 API 언어입니다. Apple API에 접근하는 것은 Swift(그리고 대부분의 현대 언어)로 소프트웨어를 만드는 데 필수적인 요소입니다. Apple은 명확성을 강조하기 위해 API 언어를 과감하게 변경했습니다. 새로운 문법에 대한 자세한 내용은 Swift.org에서 확인할 수 있습니다.
  • 플레이그라운드(Playground) 지원: Xcode 8에서는 다운로드 가능한 스냅샷을 위한 플레이그라운드 지원이 추가되었습니다. Xcode에서 최신 Swift 스냅샷을 내려받아 즉시 실험해볼 수 있으며, Xcode를 재시작할 필요조차 없습니다. 언어가 진화함에 따라 개발자들이 새로운 변화를 빠르게 따라가는 데 큰 도움이 될 것입니다.
  • 파라미터 레이블링: Swift 3에서는 파라미터 레이블링에 상당히 큰 변화가 있었습니다. Swift 2에서는 Objective-C와 일관성을 유지했지만, API 언어가 많이 달라진 만큼 파라미터도 Swift 자체에 맞추는 것이 자연스럽습니다.
  • 제네릭(Generics): 제네릭 문법도 변경되었습니다. 이제 시그니처가 앞쪽에 오고, 제약 조건은 그 뒤에 배치됩니다.
  • 경고(Warning): 함수에서 사용하지 않는 결과값이 있으면 이제 경고가 표시됩니다. 해당 동작이 의도적인 것이라면 이 경고를 무시하도록 설정할 수 있습니다.

Swift 3.0에 새로운 기능이 추가된 동시에, Apple은 일부 기능을 제거하기도 했습니다. Swift 3.0에서 삭제된 기능은 다음과 같습니다.

  • 커링(Currying) func 선언 문법
  • 함수 파라미터 목록에서 var 사용
  • ++ 및 -- 연산자
  • C 스타일 for 루프
  • 호출 시 암묵적 튜플 스플랫(Tuple Splat)

Kremenek은 "이 중 일부는 논란이 될 수 있다는 점을 알고 있습니다."라고 말하면서도, 이러한 결정들이 개발자 커뮤니티와의 긴 논의 끝에 이루어진 결과이며 모든 로그가 온라인에 공개되어 있다고 밝혔습니다.

추천 글: Swift Playgrounds 활용법과 코딩 배우기

Swift 3로 앱 작성하기: Xcode 8 베타 설치

Swift 3로 앱 개발하기: 새 기능부터 학습 방법까지 완벽 정리

Swift 3.0은 이제 모든 개발자에게 공개되었으며, 유료 Apple Developer Connection 회원이 아니어도 바로 사용할 수 있습니다. Xcode 8 베타를 다운로드하면 즉시 Swift 3.0 언어를 사용해볼 수 있습니다. Apple은 iBooks 스토어에서 'Swift 3 프로그래밍 언어' 가이드도 무료로 제공하고 있어, 새로운 기능과 문법을 빠르게 익힐 수 있습니다.

더 읽기: Swift 3.0 완벽 가이드 — Apple 프로그래밍 언어의 모든 새 기능

Swift 3로 앱 작성하기: Swift의 오픈소스화는 무엇을 의미할까?

Swift 3로 앱 개발하기: 새 기능부터 학습 방법까지 완벽 정리

2015년 12월부터 Swift 2는 오픈소스가 되었습니다. 그렇다면 이것이 프로그래머와 앱 사용자들에게 어떤 의미를 가질까요?

오픈소스란 일반적으로 프로그램이나 프로그래밍 언어의 소스 코드가 대중에게 공개되는 것을 의미합니다. 개발자들은 그 코드를 검토하고, 수정하고, 어디서든 활용할 수 있습니다.

실제로 이는 개발자들이 Swift 언어를 가져다가 Apple이 아닌 운영체제에 배포할 수 있는 빌드를 만들 수 있다는 뜻입니다. 특히 Linux와 OS X가 비슷한 Unix 계열 구조를 공유하기 때문에, 현재 Linux 환경에서 Swift를 볼 수 있습니다.

이론적으로는 Windows용 Swift도 언젠가 등장할 수 있지만, 아직 실사용 가능한 Windows 버전은 기다리고 있는 상황입니다. 또한 현재 Android에서 Java를 사용하는 Google이 Swift로 전환할 것이라는 소문도 있었지만, Google이 Oracle과의 Java 저작권 소송에서 승소한 이후에는 가능성이 낮아 보입니다.

iOS 앱을 Android 폰에서 실행할 수 있을까?

Swift 코드를 다른 기기에서 사용할 수 있다고 해서, OS X와 iOS 소프트웨어가 Windows나 Android에서 실행되는 것을 의미하지는 않습니다. 한 기기에서 다른 기기로 소프트웨어를 포팅하기는 쉬워지겠지만, Apple은 자사의 SDK(소프트웨어 개발 키트)에 대한 통제권을 유지할 것으로 보입니다. Apple이 Swift의 어떤 부분을 오픈소스로 공개할지는 확실하지 않지만, Xcode의 소스 코드는 계속 비공개로 유지될 것이므로 OS X와 iOS 소프트웨어 개발에는 여전히 Mac이 필요합니다.

Apple은 매우 폐쇄적이고 자사 창작물을 철저히 보호하는 기업으로 알려져 있어, 일반인에게는 오픈소스가 이 회사와 어울리지 않아 보일 수 있습니다. 하지만 Apple은 오픈소스 커뮤니티와 전혀 인연이 없는 회사가 아닙니다. OS X는 UNIX 기반으로 구축되었으며, 상당수 소프트웨어 구성 요소가 오픈소스입니다.

Apple의 'Open at the Source' 페이지에는 이렇게 적혀 있습니다. "Apple은 오픈소스 방법론을 활용하면 Mac OS X가 더 견고하고 안전한 운영체제가 된다고 믿습니다. 핵심 구성 요소들이 수십 년간 동료 검토(peer review)의 시련을 거쳐왔기 때문입니다."

Swift 3로 앱 작성하기: Apple Swift 프로그래밍 언어는 어떤 느낌일까?

WWDC 2014에서 처음 공개된 Apple의 Swift 프로그래밍 언어는 Mac OS X와 iOS 기기를 훨씬 쉽게 프로그래밍할 수 있도록 설계되었습니다. 이 글에서는 Swift가 어떤 프로그래밍 언어인지, Mac에 어떻게 설치하는지, 그리고 어떻게 학습하면 좋은지 살펴봅니다.

Swift는 Apple의 기존 Objective-C 프로그래밍 언어를 보완하며, 장기적으로는 이를 대체할 예정입니다. Objective-C는 1980년대에 개발되어 1996년 Mac에 도입되었습니다. 2014년 이전까지 Apple이 새로운 프로그래밍 언어를 출시한 지 17년이 지났기 때문에, Swift는 Apple 개발자 커뮤니티에게 매우 중요한 의미를 갖습니다.

  • WWDC 2014에서 Apple이 발표한 내용은 무엇이었을까?

Swift 3로 앱 개발하기: 새 기능부터 학습 방법까지 완벽 정리

Swift 3로 앱 작성하기: Apple Swift 프로그래밍 언어란?

Swift는 Cocoa와 Cocoa Touch(각각 Mac OS X와 iOS의 프로그래밍 프레임워크)를 위한 프로그래밍 언어입니다. Swift 프로그램은 Apple의 통합 개발 환경(IDE)인 Xcode 6 이상에서 작성할 수 있습니다.

Swift는 2014년에 등장한 비교적 새로운 언어지만, 기존 Objective-C 프로그램과 함께 작동하도록 설계되었습니다(OS X와 iOS 프로그램은 예전에 Objective-C로 개발되었습니다). 덕분에 개발자들은 기존 Objective-C 코드를 모두 교체하지 않고도 기존 앱에 Swift 코드를 추가할 수 있습니다.

Swift 3로 앱 작성하기: Swift 프로그래밍의 장점은?

Apple은 Swift가 기존 Objective-C 코드에 비해 갖는 여러 장점을 소개했습니다. 언어 자체가 비교적 새롭기 때문에 앞으로 지켜볼 부분이 많지만, Swift가 Objective-C보다 나은 프로그래밍 언어인 이유는 다음과 같습니다.

깔끔한 문법

Swift는 읽고 코딩하기 훨씬 쉬운 언어로 설계되었습니다. Swift의 문법은 각 줄 끝에 세미콜론이 필요 없고, 함수도 이해하기 쉽습니다. 예를 들어, 대부분의 사람들이 Basic 언어에서 익숙한 print 명령은 Objective-C에서는 NSLog입니다(NS는 Steve Jobs가 Apple을 떠난 후 설립한 회사 NextStep의 흔적으로, Apple이 얼마나 많은 레거시를 교체하고 있는지 보여줍니다). 반면 Swift에서는 훨씬 익숙한 println 명령을 사용합니다. 코딩에 필요한 기호도 줄었고, 전반적으로 Swift는 Objective-C보다 훨씬 효율적입니다.

각 언어로 작성된 고전적인 Hello World 프로그램(화면에 "Hello, world!"를 출력하는 프로그램)을 비교해 보면, Swift가 훨씬 간결하고 이해하기 쉽다는 것을 알 수 있습니다.

Objective-C: Hello World

Objective-C에서 Hello World 프로그램은 다음과 같습니다.

#import
#import <Foundation/Foundation.h>

int main(void)
{
    NSLog(@"Hello, world!\n");
    return 0;
}

Swift: Hello World

Swift에서는 다음과 같이 훨씬 간단합니다.

println("Hello, world!")

보시다시피 Swift는 읽고 배우기 훨씬 깔끔하고 간단한 코드입니다. Apple이 코드의 표현력을 높이기 위해 중요하다고 꼽은 다른 기능들은 다음과 같습니다.

  • 함수 포인터와 통합된 클로저(Closures)
  • 튜플과 다중 반환 값
  • 제네릭(Generics)
  • 범위나 컬렉션에 대한 빠르고 간결한 순회
  • 메서드, 확장, 프로토콜을 지원하는 구조체(Struct)
  • map, filter 같은 함수형 프로그래밍 패턴

메모리 자동 관리

Swift의 큰 장점 중 하나는 개발자가 메모리 할당을 직접 관리하지 않아도 된다는 점입니다. Swift에서는 변수가 사용 전에 초기화되고, 배열과 정수는 오버플로우가 검사되며, 메모리가 자동으로 관리됩니다. 이는 경험이 많지 않은 개발자에게도 Swift를 더 안전하게 사용할 수 있게 해줍니다. Swift의 메모리 관리는 앱을 더 안정적으로 만들어 개발자와 일반 사용자 모두에게 이익이 됩니다.

추천 글: App Store에서 iOS 앱 마케팅 성공을 위한 완벽 가이드

Swift 3로 앱 작성하기: Mac에서 Swift는 어디서 구할 수 있나?

Swift는 Mac App Store에서 무료로 다운로드할 수 있는 Xcode IDE(통합 개발 환경)에 포함되어 있습니다.

Swift 3로 앱 개발하기: 새 기능부터 학습 방법까지 완벽 정리

Swift 3로 앱 작성하기: Swift를 배워야 할까?

개발자들의 일반적인 평가는 Swift가 훌륭한 프로그래밍 언어라는 것입니다. Swift는 평가가 높은 또 다른 언어인 Python과 여러 면에서 비슷합니다. 신입 개발자 입장에서 Swift는 Objective-C보다 훨씬 배우기 쉬울 것입니다. Python은 프로그래밍 수업에서 자주 사용되는 언어이므로, 많은 프로그래머가 이미 Swift 문법의 상당 부분에 익숙할 수 있습니다.

더 읽기: Mac에서 Python으로 코딩하는 방법

기존 개발자들에게도 유리합니다. 더 깔끔한 문법 덕분에 작업이 한결 수월해질 것입니다.

Objective-C에 익숙해지는 데 시간을 투자한 개발자라면 Swift가 삶을 편하게 만들어주는 많은 부분을 발견하게 될 것입니다. 물론 새 언어로 전환하려면 새로운 코드를 배워야 하므로 당장은 부담이 될 수 있습니다. 하지만 장기적으로는 베테랑 Objective-C 개발자에게도 Swift 코딩이 충분히 보상받을 것으로 기대됩니다.

다만 Swift가 Mac OS X와 iOS의 코드를 Android 같은 다른 플랫폼으로 쉽게 옮겨주지는 않는다는 점을 유의해야 합니다. 많은 개발자들이 Apple 생태계에 더 깊이 종속되는 것과 Swift 개발의 장점 사이에서 고민하고 있습니다. 당분간 Apple은 Cocoa 및 Cocoa Touch 앱 개발을 위해 Objective-C와 Swift 코드를 모두 지원하지만, 결국 모든 개발자를 Swift로 전환시킬 것으로 예상됩니다.

Swift 3로 앱 작성하기: Swift 프로그래밍은 어떻게 배울까?

Swift를 배우고 싶다면 다양한 리소스를 활용할 수 있습니다. App Store에서 Xcode를 받을 수 있고, Apple은 iBooks 스토어에서 'The Swift Programming Language'라는 책도 이미 공개했습니다. 참고로 이 책은 누구나 다운로드할 수 있으며, 등록된 Apple Developer일 필요가 없습니다.

Apple의 Swift Programming Language 책은 Mac OS X의 iBooks로 읽을 수 있고, iPad(또는 iPhone)에서도 읽을 수 있습니다. 이 책은 기본 연산자부터 상속(Inheritance)까지 다루지만, Xcode 환경에서의 iOS 앱 개발까지는 포함하고 있지 않습니다. 조만간 더 상세한 Swift 관련 서적과 초보자용 튜토리얼이 잇달아 나올 것으로 기대됩니다.

추천하는 Apple Swift 프로그래밍 리소스는 다음과 같습니다.

  • The Swift Programming Language (iBooks 스토어)
  • The Swift Programming Language (공식 웹 문서)
  • Using Swift with Cocoa and Objective-C

또한 Udemy 같은 온라인 강의 사이트를 확인해보길 권합니다. 개발자를 위한 다양한 강좌가 있습니다.

  • iOS 9 and Swift Mastery: Build 11 apps with Swift
  • Complete iOS 9 developer course
  • Learn to build 20 websites and 14 iOS 9 apps with Swift

그동안 많은 개발자들이 인터넷에서 Swift와 그 기능을 소개해왔습니다. Swift 프로그래머 지망생이라면 북마크해두면 좋은 사이트들입니다.

  • Swiftly Functional
  • Reddit /r/swift

Stanford, MIT, Harvard 같은 대학의 온라인 강의 영상도 훌륭합니다. iTunes U에서 Stanford의 'Developing iOS 9 Apps with Swift' 강좌를 확인해보세요. 이런 강의를 시청하는 것은 개발 전반에 대한 감을 잡는 데 아주 좋은 방법입니다.

추가로 알려줄 만한 Swift 프로그래밍 사이트나 책이 있다면 댓글로 알려주세요.

Swift 3로 앱 작성하기: 프로그래밍을 처음부터 배우는 최고의 방법은?

프로그래밍이 처음이거나 코딩을 아예 새로 배우고 싶다면 도움이 되는 다양한 웹사이트와 서비스가 있습니다. 추천할 만한 코딩 학습 사이트는 다음과 같습니다.

  • Codecademy: 디지털 스킬을 가르치는 무료 온라인 학습 커뮤니티입니다. 아직 Swift 프로그래밍은 제공하지 않지만, Python(시작하기에 아주 좋은 언어) 학습을 친절하게 안내해줍니다.
  • Learn Python the Hard Way: 이름은 좀 무섭게 들리지만, 이 책과 강좌는 초보자가 프로그래밍을 시작하기에 가장 좋은 방법 중 하나입니다.
  • MITx 6.00.1x: Introduction to Computer Science and Programming Using Python: 컴퓨터 과학이나 프로그래밍 경험이 없는 MIT와 Harvard 학생들을 위해 설계된 강좌입니다. 모든 자료와 강의가 온라인에서 무료로 제공되며, 프로그래밍 입문을 위한 최고의 가이드입니다(컴퓨팅에 관심 있는 분이라면 영상만 봐도 충분히 재미있습니다).

그것으로 부족하다면, Nate Murray라는 개발자 덕분에 이미 Swift로 Flappy Bird를 플레이해볼 수 있습니다. Flappy Bird의 Swift 코드는 GitHub에서 확인할 수 있습니다.

포함하면 좋을 링크나 리소스가 더 있다면 알려주세요.

Swift 3로 앱 개발하기: 새 기능부터 학습 방법까지 완벽 정리

함께 보기:

  • Swift 3와 새로운 기능 완벽 가이드
  • WWDC에서 발표된 macOS Sierra
  • iOS 10 미리보기: iOS 10 베타 첫 사용 후기