Swift 입문 | Swift 사용 준비 | Swift 특징

그럼, 이 Swift라는 것은 어떤 걸까? 그 특징을 간단하게 정리해 보겠다.

현대 언어이다

Objective-C는 현대의 언어가 채택하고 있는 다양한 “멋진 기능"을 많이 지원하지 않았다. Swift는 Objective-C에서는 사용할 수 없었던 다양한 언어의 기능을 사용할 수 있게 되어 있다. “클로져"라는 값 처럼 처리를 취급할 수 있는 기능과 제네릭이라는 다양한 종류의 값을 처리하는 기능 등이 준비되어 있다.

안전하다

Swift는 프로그램에 버그가 섞여 쉬운 다양한 기능을 코드에서 제거 문법이 있다. 예를 들어, 변수는 반드시 초기 값을 설정하지 않으면 안되게 하거나, 객체를 처리하는 변수에 “개체가 없는 텅 빈 상태"를 금지하고, 변수는 처음부터 형태를 설정하도록 되어 있고, 제어 구문에서는 반드시 {}으로 처리를 둘려싸지 않으면 안되거나… 어쨌든 “프로그래머에 의한 무심코하게 되는 실수"를 없애도록 할 수 있다.

인터랙티브이다

Swift는 컴파일러 언어이다. 미리 프로그램을 컴파일 해두고 컴퓨터가 직접 실행할 수 있는 바이너리 코드로 프로그램을 작성한다. 그러나 동시에 인터프리터(순서대로 실행하는 방식)으로도 움직일 수 있다. Xcode는 “플레이 그라운드(play grount)“라는 것이 준비되어 그 자리에서 구문을 쓰고 실행하면서 움직일 수도 있다. 당분간은 이런 식으로 Swift의 기본을 배워나가게 될 것이다.

수행이 빠르다.

이러한 다양한 기능이 포함되어 있기 때문에 “과연, 편리한 것 같지만, 그래도 작성한 응용 프로그램은 Objective-C 쪽이 척척 움직일 것 같다"고 생각할지 모른다. 하지만 실은 그렇지도 않는다. 애플에 따르면, Swift로 만들어진 프로그램은 Objective-C보다 빠르게 수행 할 수 있는 거다.

그러나 다른 프로그래머들에 의하면 Swift에는 많은 병목 현상(bottleneck)이 존재하는 것으로 알려져 있으며, 현재 “Objective-C보다 빠르다"고 단언은 할 수 없지만, 어느쪽으로 정식 출시될 때에 아마 그만한 성능를 실현하고 있는 것이다.

사실 백본(backbone)은 Objective-C와 같다

원래 Mac과 iOS에서 Objective-C가 사용 된 것은 OS 자체가 이 언어를 위해 최적화되어 있었기 때문이었다. Swift와 같은 새로운 언어가 등장해도 이 점은 변함이 없다. Mac OS X/iOS에 내장된 프레임 워크 등은 Objective-C 용이며, Swift는 이것을 그대로 사용한다. 즉, 언어로는 새롭겠지만, 실제로 Mac OS X 및 iOS의 기능을 이용할 때는 Objective-C에서 사용하던 기능을 그대로 이용된다는 것이다. 따라서 “새로운 언어를 위한 모든 기능을 처음부터 모두 배우기"라는 것은 없다. 지금까지 Objective-C에서 배운 지식의 대부분은 그대로 활용할 수 있다.