Swift는 애플의 순정 개발 환경인 "Xcode"로 이용한다. 우선 사용을 위한 준비를 하여 간단한 프로그램을 실행에 설명한다.


Swift(스위프트)란?

Swift는 2014년 6월에 개최된 애플 개발자 컨퍼런스에서 갑자기 발표된 완전히 새로운 프로그래밍 언어이다.

기존에는 Mac OS X 및 iOS (iPhone과 iPad) 앱 개발은 "Objective-C (오브젝트-씨)"라는 프로그래밍 언어를 사용했었다. 이는 Mac OS X의 성립 유래에 따른다.

Mac OS X은, 실은 그 이전에 있었던 'NeXT STEP'라는 OS를 기반으로 하고 있다. NeXT STEP은 원래 Objective-C라는 강력한 객체 지향 언어를 개발했을 때, 이 Objective-C에 의한 프로그램 작성 및 실행을 위한 플랫폼으로 만들어진 것이다. 즉, Objective-C와 NeXT STEP은 일심 동체에서 이 둘은 거의 같은 것으로 해도 좋을 정도로 밀접한 관계에 있었다. 이 NeXT STEP을 개발하고 있던 곳이 당시 NeXT사였고, CEO가 스티브 잡스였다.

스티브 잡스가 애플에 복귀했을 때,이 NeXT STEP도 함께(?) 애플로 이적하고 이를 바탕으로 "Mac OS X"가 만들어 졌다. 물론 외관은 Mac 다워 졌지만, 내용은 NeXT STEP이었다. 그래서 Mac OS X도 "Objective-C 프로그램을 만들어 움직인다"것이 전제가 되어 있었다.

이 대전제는 사실 지금도 바뀌지 않는다. Mac OS X (그리고, 이를 바탕으로 만들어진 iOS)는 Objective-C을 위해 준비된 프레임 워크 내부에 포함되어 있으며,이를 이용하여 모든 프로그램이 움직이고 있다. "Mac 또는 iPhone의 개발은 왜 Objective-C가 아니면 안되는 걸까" 이유는 이런 것이었다. 원래 "Objective-C로 만드는 것을 전제로 설계된 OS "이기 때문이다.

이 Objective-C는 솔직히 매우 이해하기 어려운 언어이다. 이것은 C언어에 Smalltalk는 객체 지향 언어의 원조라고도 말할 수있는 것을 결합시킨 같은 언어로 하나의 언어에서 두 언어의 문법이 동거하고 있는 것 같은 이상한 문법으로 되어 있다. C의 또 다른 개체 언어 발전형인 C++, 이것에 문법이 가까운 Java, C # 등의 언어가 주류가 됨에 따라 이들로 부터 벗어난 Objective-C는 "보통의 언어와 다르고, 배우기 어려운 언어"라고 인식되어 갔다.

Mac 또는 iPhone이 붐이 되어 많은 개발자가 이러한 응용 프로그램을 만들려고 모여들었다. 하지만 이 "Objective-C의 첫인상 어려움"에 질리게 되다. 왜 좀 더 이해하기 쉬운 언어를 사용할 수없는 거야? 라고 많은 개발자들이 생각하게 된다.

이러한 상황은 애플에게도 바람직한 것은 아니다. 그래서 Objective-C와는 다른 새로운 "배우기 쉽고 알기 쉬운 사용하기 쉬운 언어"등장하게 된 것이다. 그것이 "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에서 배운 지식의 대부분은 그대로 활용할 수 있다.



Swift 사용하기 위한 준비

그럼 Swift를 사용할 수 있게 해보자. Swift는 애플이 제공하는 개발 환경 "Xocde6"이상에서 지원된다. 이 Xcode6은 2014 년 가을에 출시되었으며, 현재 Xcode7까지 나왔다(2017년 9월 기준).

설치를 하기 위해서는앱스토어를 이용해도 됙, 애플 개발자 사이트에서 다운로드 받아서 설치를 하여도 된다. 단, 애플 개발자 사이트에서 다운 받기 위해서는 Apple Developer Program의 구성원이어야 한다.

https://developer.apple.com/xcode/downloads/

애플 개발자 사이트에서 다운로드 받았다면, 디스크 이미지(.dmg)를 마운트하여 Xcode을 그대로 복사하는 것만으로 설치가 완료된다.

(단, 처음 시작할 때 구성 요소의 기본 작업을 수행하기 때문에, 처음 시작은 시간이 좀 걸린다. 구성 요소 기본 제공에 대한 확인 대화 상자가 나타나면 반드시 설치하도록 한다. 제대로 기동이 되었다면 설치가 완료된다.)

플레이 그라운드를 사용하자

Xcode을 시작하면, 우선 '플레이 그라운드'를 만들어 보자. 이것은 Swift 프로그램을 바로 실행할 수 있는 특수 파일이다.

Xcode를 시작할 때 나타나는 Welcome 창에서 "Get started with a playground"항목을 클릭을 한다. 그리고 나타난 대화 상자에서 name에 프로그램(파일)명과 Platform에 "OS X"을 선택한다. 그리고 저장할 폴더를 선택하고 저장하면 플레이 그라운드 윈도우가 나타난다. 이것으로 사용할 수 있게 되었다.


플레이그라운드 실행

작성된 플레이 그라운드에는 기본적으로 간단한 문장이 적혀 있다다 (아래 소스 코드 참조). 우선 이것의 의미를 이해해 보자.

// Playground - noun: a place where people can play
 
import Cocoa
 
var str = "Hello, playground"

라이브러리 가져오기

import Cocoa

이것은 Cocoa 프레임워크의 라이브러리를 가져 오는 것이다. Mac 또는 iOS는 OS 고유의 기능을 처리하는 'Cocoa'라는 프레임 워크가 포함되어 있으며, 이를 통해서 OS에 액세스하고 조작할 수 있다. 이 Cocoa를 프로그램 중에서 사용할 수 있도록 하는 것이, 이 import 문이다. import는 지정된 라이브러리를 로드하여 사용할 수 있도록 하는 것이다.

변수 사용

var str = "Hello, playground"

이것은 사실 여러가지 요소가 포함된 문장이다. 먼저 "var str"으로 변수 str을 만들고 있다. 또한 텍스트의 값은 큰 따옴표(")를 사용하여 작성하고 있다.

그리고 더 재미있는 것이 이 코드 편집기(var str ~) 오른쪽에 표시되는 "Hello, playground"라는 텍스트이다. 이것은 "var str ~ "문장의 실행 결과이다.

플레이 그라운드는 쓴 문장이 그 자리에서 바로 실행 결과가 표시된다. 예를 들어 변수를 만들고 값을 할당하거나 하면 그 변수에 저장된 값이 오른쪽에 표시된다. 참 편리 기능이다.

이 플레이 그라운드을 사용하면 조금씩 프로그램을 작성하고 그 자리에서 결과를 확인하는 것이 가능하다. 이제 Swift을 시험하는 환경이 우선 준비되었다.

다음부터는 플레이 그라운드에서 여러 가지 써서 Swift의 기본적인 문법을 설명하겠다.




'Swift' 카테고리의 다른 글

[Swift] 배열과 사전  (0) 2017.12.09
[Swift] 클래스 기본  (0) 2017.12.09
[Swift] 함수  (0) 2017.12.09
[Swift] 제어 구문  (0) 2017.12.09
[Swift] 값, 변수, 연산  (0) 2017.12.09
[Swift] Swift 사용 준비하기  (0) 2017.12.09

+ Recent posts