Swift 4

쉽게 학습 가능한 강력한 프로그래밍 언어.

Swift는 macOS, iOS, watchOS 및 tvOS를 위한 강력하고 직관적인 프로그래밍 언어입니다. Swift 코드 작성은 대화식으로 재미있고, 구문은 간결하면서도 표현력이 풍부하며, Swift에는 개발자들이 좋아하는 첨단 기능이 포함되어 있습니다. Swift 코드는 안전하게 설계되었으며 빛의 속도로 빠르게 실행되는 소프트웨어도 제작할 수 있습니다.

Swift 4 소개

Swift 4는 Swift 3의 강점을 바탕으로 만들어졌습니다. 훨씬 더 견고하고 안정적이며, Swift 3와의 소스 코드 호환성을 제공하고, 표준 라이브러리를 개선하며, 스마트 키 경로 및 직렬화와 같은 기능을 추가하는 동시에 이 모든 성능을 갖추고도 빌드 시간은 단축하고 앱 바이너리 크기는 줄였습니다.

iPad에서 Swift 배우기

Swift Playgrounds에서는 작성한 코드의 결과를 즉시 보여주는 'Playground'라는 작은 프로그램을 만들 수 있습니다. 간단한 코드 한 줄로 놀라운 일을 해낼 수 있습니다. 대화식 레슨을 통해 주요 코딩 개념을 학습하고, 추가로 주어지는 도전 과제 및 템플릿을 통해 새롭고 흥미진진한 방식으로 코드를 탐색하며 매우 독창적인 것을 만들어 낼 수 있습니다. 또한 Playground에서 블루투스를 사용하여 로봇, 드론 및 기타 하드웨어 액세서리를 제어할 수 있습니다. 자신의 창작물을 친구들과 공유하거나, 작동 중인 Playground의 동영상을 녹화하고 게시하는 것이 손쉬워집니다.

iPad용 Swift Playgrounds에 대해 알아보기

오픈 소스

Swift 4는 Swift.org에서 오픈 소스로 개발되었으며 모든 사람이 이용할 수 있는 소스 코드, 버그 추적기, 메일 목록 및 정기적인 개발 빌드가 포함되어 있습니다. Apple뿐만 아니라 수백 명의 외부 개발자가 참여하는 이 광범위한 개발자 커뮤니티에서 Swift를 더욱 멋진 언어로 만들기 위해 협력하고 있습니다. Swift는 이미 Linux를 비롯하여 모든 Apple 플랫폼을 지원하며, 더 많은 플랫폼에 전파하기 위해 커뮤니티 회원들이 활발히 작업하고 있습니다. Apple은 Swift로 소프트웨어를 더욱 안전하고 빠르게 만드는 동시에 프로그래밍을 더 재미있게 만드는 다양한 방법을 볼 수 있어 매우 기쁘게 생각합니다.

오픈 소스 Swift 커뮤니티에 대해 더 자세히 알아보려면 Swift.org를 방문하십시오.

소스 호환성 모드

Swift 3는 소스 수준 안정성을 고려하여 언어를 설정했으며, 이제 Swift 4는 앞으로 발전시켜 나갈 기능으로 소스 호환성을 제공합니다. Swift 4를 사용하면 새로운 버전의 컴파일러를 사용하기 위해 코드를 수정할 필요가 없습니다. 대신 새로운 Swift 4 컴파일러를 사용하여 한 번에 한 모듈씩 새로운 Swift 4 기능을 활용하여 자신만의 속도로 마이그레이션할 수 있습니다.

새로운 Swift 4 컴파일러는 세 가지 모드로 사용할 수 있습니다.

  1. Swift 3 모드는 기존 코드용 기본값으로 Swift 3 컴파일러로 빌드된 소스 코드를 빌드할 수 있습니다.
  2. Swift 4 모드를 사용하면 Swift 4의 새로운 기능 및 성능 최적화를 사용할 수 있으며, 일부 기능에 마이그레이션이 필요할 수 있지만 이전에 Swift 2.2에서 Swift 3로 전환하던 것보다 더 쉽게 마이그레이션할 수 있습니다.
  3. 혼합 모드를 사용하면 동일한 컴파일러로 빌드된 바이너리 간의 상호 운용성을 활용할 수 있습니다. 이 모드는 모든 패키지가 Swift 4 컴파일러를 사용하여 빌드되는 한 Swift 3로 작성된 패키지와 Swift 4로 작성된 패키지를 혼합하여 사용하는 프로젝트의 개발자에게 유용합니다. 이를 통해 개발자는 시간이 지나면서 점진적으로 코드의 특정 부분을 Swift 4로 마이그레이션할 수 있습니다.

Swift 4의 새로운 기능

  • 유니코드 정확성을 유지하는 문자열 사용이 더 빠르고 용이하며 하위 문자열 생성, 사용 및 관리를 위한 지원 추가
  • Swift 유형의 타입 세이프하고 효율적이며 확장 가능한 키 값 코딩을 위해 스마트 키 경로 제공
  • 딕셔너리 및 세트 유형을 생성하고 변경하는 기능 향상
  • struct 및 enum 유형에 대해 아카이브 및 직렬화 지원을 확장하고, JSON 및 plist와 같은 외부 형식으로 직렬화하기 위한 타입 세이프 제공
  • 메모리에 대한 독점적인 접근

최신 기능

Swift는 프로그래밍 언어에 대한 최신 연구 결과이며 수십 년에 걸친 Apple 플랫폼 구축 경험이 결합되어 있습니다. Objective-C에서 가져온 명명된 매개변수는 Swift로 작성된 API를 더 쉽게 읽고 유지 관리할 수 있게 해주는 명확한 구문으로 표현됩니다. 추론된 유형은 코드를 더 명확하게 만들고 실수를 덜 하도록 도와주며, 모듈은 헤더를 없애고 이름 공간을 제공합니다. 또한 메모리가 자동으로 관리되므로 세미콜론을 입력할 필요가 없습니다. 이러한 미래 지향적인 개념은 사용하기 쉽고 재미있는 언어를 만들어 냅니다.

extension String {
						var banana : String {
							let shortName = self.dropFirst()
							return "\(self) \(self) Bo B\(shortName) Banana Fana Fo F\(shortName)"
						}
					}
					
					let bananaName = "Jimmy".banana		// "Jimmy Jimmy Bo Bimmy Banana Fana Fo Fimmy"

Swift는 다음과 같이 코드의 표현력을 높이기 위한 다른 많은 기능을 제공합니다.

  • 함수 포인터와 통합된 클로저
  • 튜플 및 멀티플 반환 값
  • 제네릭
  • 범위 또는 컬렉션에서의 빠르고 간결한 반복
  • 메소드, 확장 프로그램 및 프로토콜을 지원하는 구조
  • 함수형 프로그래밍 패턴(예:지도 및 필터)
  • try/catch/throw를 사용한 기본 오류 처리

Xcode의 Playground 및 REPL

iPad용 Swift Playgrounds와 마찬가지로 Xcode의 Playground를 사용하여 매우 간단하고 재미있게 Swift 코드를 작성할 수 있으며, 한 줄의 코드를 입력하면 결과가 즉시 나타납니다. 작성 후에는 코드 옆에서 Quick Look(훑어보기) 기능으로 결과를 확인하거나 해당 결과를 바로 아래에 고정할 수 있습니다. 결과 보기에 그래픽, 결과 목록 또는 시간 경과에 따른 값의 그래프를 표시할 수 있습니다. Timeline Assistant를 열면 복잡한 뷰가 변하고 움직이는 것을 볼 수 있어 새로운 UI 코드를 실험하는 데 유용하며, 코드를 작성하면서 움직이는 SpriteKit 장면을 재생할 수 있습니다. Playground에서 코드를 완벽하게 만들었다면 코드를 프로젝트로 이동하기만 하면 됩니다.

REPL(Read-Eval-Print-Loop)

Xcode의 LLDB 디버깅 콘솔에는 Swift 언어의 대화식 버전이 내장되어 있습니다. Swift 구문을 사용하여 실행 중인 앱을 평가하고 이러한 앱과 상호 작용하거나, 새로운 코드를 작성하여 스크립트와 유사한 환경에서 어떻게 작동하는지 확인할 수 있습니다. Xcode 콘솔 또는 터미널에서 사용할 수 있습니다.

Package Manager

Swift 3에서 소개된 Swift Package Manager는 종속성을 쉽게 만들고 관리할 수 있게 해주는 Swift 라이브러리 및 실행 파일 제작용 크로스 플랫폼 도구입니다. Swift 4는 새로운 워크플로우 기능과 Swift Package Manager를 위한 보다 완벽한 API를 추가합니다. 이제 첫 번째 공식 릴리즈에 대한 태그를 지정하기 전에 여러 패키지를 연동하여 개발하고, 여러 패키지의 한 분기에서 함께 작업하며, 제어하지 않은 종속성의 소스 코드를 로컬에서 변경하기가 더 쉬워졌습니다. 새로운 API를 사용하면 패키지 작성자가 패키지에서 클라이언트가 사용할 수 있는 제품을 정의하고 소스를 디스크에서 구성하는 방법을 사용자화할 수 있습니다. 또한 이전 패키지와의 소스 호환성을 유지하면서 패키지를 만드는 데 사용되는 API가 전반적으로 더 깔끔하고 명확해졌습니다.

빠르고 강력한 성능

Swift는 최초 개념 설정 시점부터 빠르게 동작하도록 만들어졌습니다. Swift 코드는 뛰어난 고성능 LLVM 컴파일러를 사용하여 최신 하드웨어를 최대한 활용할 수 있도록 최적화된 기본 코드로 변환됩니다. 또한 구문 및 표준 라이브러리는 코드를 작성하는 가장 확실한 방법인 동시에 최고의 성능을 발휘하도록 조정되었습니다.

Swift는 C 및 Objective-C 언어의 후속 언어로 유형, 흐름 제어, 연산자와 같은 하위 수준 프리미티브를 포함합니다. 또한 클래스, 프로토콜, 제네릭과 같은 객체 지향 기능을 제공하므로 Cocoa 및 Cocoa Touch 개발자에게 필요한 성능과 파워를 제공합니다.

안전 중심 설계

Swift는 불안전한 코드의 전체 클래스를 제거합니다. 변수는 사용 전에 항상 초기화되고, 배열 및 정수에 대한 오버플로우를 검사하며, 메모리는 자동으로 관리됩니다. 구문은 사용자의 의도를 쉽게 정의할 수 있도록 조정됩니다. 예를 들어 3자로 된 간단한 키워드는 변수(var) 또는 상수(let)를 정의합니다.

또 다른 안전 기능은 기본적으로 Swift 객체가 결코 nil이 될 수 없게 하는 것입니다. 실제로 Swift 컴파일러는 컴파일 시 오류가 있는 nil 객체를 만들거나 사용할 수 없도록 합니다. 이렇게 하면 코드를 훨씬 깔끔하고 안전하게 작성할 수 있으며 앱에서 거대한 카테고리의 런타임 충돌을 방지할 수 있습니다. 하지만 nil이 유효하고 적절한 경우도 있습니다. 이러한 경우를 위해 Swift는 선택 사항이라는 혁신적인 기능을 제공합니다. 선택 사항에는 nil이 포함될 수 있지만, Swift 구문은 ? 구문을 사용하여 nil을 안전하게 처리하도록 함으로써 컴파일러에 동작을 이해하고 안전하게 처리될 것임을 표시합니다.

Objective-C 상호 운용성

지금 바로 Swift를 사용하여 전혀 새로운 응용 프로그램을 만들거나 Swift 코드 사용을 시작하여 앱에 새로운 기능을 구현할 수 있습니다. 동일한 프로젝트에서 기존 Objective-C 파일과 함께 Swift 코드가 공존하며, Objective-C API에 대한 완전한 접근 권한이 제공되므로 적용이 용이합니다.

Swift를 시작하려면 Xcode를 다운로드하고 리소스 탭에서 제공하는 튜토리얼을 따르십시오.