2014.07.23

애플의 스위프트에 관해 알아야 할 10가지

Paul Rubens | CIO

최근 애플이 OS X 및 iOS용 애플리케이션 개발 과정에서 오브젝티브-C(Objective-C)를 대체할 새로운 언어 스위프트(Swift)를 공개했다. 그러나 아직 스위프트를 활용한 애플리케이션들의 iOS 및 맥 앱 스토어 승인은 이뤄지지 않고 있는 상황이다. 승인은 iOS 8과 신형 OS X 버전(요세미티)의 배포가 시작되는 가을부터 이뤄질 예정이다.

즉 아직 우리에겐 애플이 제시한 이 새로운 프로그래밍 언어의 이모저모를 찬찬히 살펴볼 시간이 남아있는 것이다. 여기 애플의 스위프트에 관해 알아야 할 10가지 사실들을 정리해 소개한다.



스위프트는 젊은 프로그래머들에게 어필할 것이다. 스위프트의 특성은 오브젝티브-C 보다는 루비(Ruby)나 파이썬(Python)과 닮은 부분이 많다. 대표적으로 최종 구문에 세미콜론을 삽입할 필요가 없다는 점 등이 스위프트와 파이썬의 공통점이라 할 수 있다(오프젝티브-C의 경우 세미콜론을 입력하지 않으면 오류 발생의 가능성이 있다). 루비나 파이썬에 지식이 있는 프로그래머들이라면, 스위프트에 역시 빠르게 적응할 수 있을 것이다.

스위프트와 오브젝트-C가 차이를 지니긴 하지만 두 언어는 양립할 가능성 역시 지닌다. 즉, 스위프트를 이용해 작성된 신형 모듈과 기존 오브젝티브-C 코드 베이스 간의 상호 운영이 보장되는 것이다. 스위프트가 탄탄한 오브젝티브-C 스킬을 이미 갖춘 이들에게도 어필할 수 있는 지점이다.

스위프트는 (보다) 안전한 언어가 될 것이다. 애플은 스위프트를 안전한 언어로 만드는데에도 많은 세세한 노력을 기울였다. 기본적으로 프로그래머들은 SSL “고투 페일” 에러(SSL "goto fail" error)와 같은 버그를 막기 위해 “If” 구문을 여닫을 때 중괄호, 대괄호를 포함해야 한다.

이에 더해 스위치 구문은 디폴트 구문의 포함을 반드시 요구하는데, 이는 구문 내 모든 가능성이 충족되지 않았을 때에도 구문 말미에 무언가가 실행되도록 보장하는 역할을 한다.

스위프트는 생각보다 빠르지 않다. ‘칼새’라는 이름의 의미와 달리 스위프트를 통해 작성된 애플리케이션이 오브젝티브-C 기반의 그것보다 압도적으로 빠르지는 않다. 두 언어는 분명 다르지만, 사실 그렇게 다르지는 않기도 하다.

두 언어의 타깃은 코코아(Cocoa)와 코코아 터치(Cocoa Touch) API(각각 OS X, iOS용)로 동일하며, 정적타입언어(statically typed language)라는 점이나 동일한 LLVM 컴파일러를 이용한다는 점 역시 공통적이다. 물론 서로 다른 언어임은 분명하기에 성능 역시 차이가 있을 수밖에 없지만, 확연한 차이는 기대하지 않는 것이 좋다.

스위프트는 불완전하다. 현재 우리가 이용 가능한 스위프트는 완성품이 아니다. 애플은 여전히 작업을 진행 중이고, 향후 몇 달 간 새로운 기능들을 더 제시할 것이다. 언어를 익히기 위해 스위프트를 이용해 코딩해보는 것은 좋지만, 이를 위해선 X코드 6 베타(Xcode 6 beta)와 iOS 8 SDK(역시 베타 버전이다)가 필요할 것이다.

요세미티와 iOS 8 배포 전까진 스위프트 기반 앱에 대한 애플의 승인 역시 이뤄지지 않을 것이라는 사실도 다시 한 번 기억하자.




2014.07.23

애플의 스위프트에 관해 알아야 할 10가지

Paul Rubens | CIO

최근 애플이 OS X 및 iOS용 애플리케이션 개발 과정에서 오브젝티브-C(Objective-C)를 대체할 새로운 언어 스위프트(Swift)를 공개했다. 그러나 아직 스위프트를 활용한 애플리케이션들의 iOS 및 맥 앱 스토어 승인은 이뤄지지 않고 있는 상황이다. 승인은 iOS 8과 신형 OS X 버전(요세미티)의 배포가 시작되는 가을부터 이뤄질 예정이다.

즉 아직 우리에겐 애플이 제시한 이 새로운 프로그래밍 언어의 이모저모를 찬찬히 살펴볼 시간이 남아있는 것이다. 여기 애플의 스위프트에 관해 알아야 할 10가지 사실들을 정리해 소개한다.



스위프트는 젊은 프로그래머들에게 어필할 것이다. 스위프트의 특성은 오브젝티브-C 보다는 루비(Ruby)나 파이썬(Python)과 닮은 부분이 많다. 대표적으로 최종 구문에 세미콜론을 삽입할 필요가 없다는 점 등이 스위프트와 파이썬의 공통점이라 할 수 있다(오프젝티브-C의 경우 세미콜론을 입력하지 않으면 오류 발생의 가능성이 있다). 루비나 파이썬에 지식이 있는 프로그래머들이라면, 스위프트에 역시 빠르게 적응할 수 있을 것이다.

스위프트와 오브젝트-C가 차이를 지니긴 하지만 두 언어는 양립할 가능성 역시 지닌다. 즉, 스위프트를 이용해 작성된 신형 모듈과 기존 오브젝티브-C 코드 베이스 간의 상호 운영이 보장되는 것이다. 스위프트가 탄탄한 오브젝티브-C 스킬을 이미 갖춘 이들에게도 어필할 수 있는 지점이다.

스위프트는 (보다) 안전한 언어가 될 것이다. 애플은 스위프트를 안전한 언어로 만드는데에도 많은 세세한 노력을 기울였다. 기본적으로 프로그래머들은 SSL “고투 페일” 에러(SSL "goto fail" error)와 같은 버그를 막기 위해 “If” 구문을 여닫을 때 중괄호, 대괄호를 포함해야 한다.

이에 더해 스위치 구문은 디폴트 구문의 포함을 반드시 요구하는데, 이는 구문 내 모든 가능성이 충족되지 않았을 때에도 구문 말미에 무언가가 실행되도록 보장하는 역할을 한다.

스위프트는 생각보다 빠르지 않다. ‘칼새’라는 이름의 의미와 달리 스위프트를 통해 작성된 애플리케이션이 오브젝티브-C 기반의 그것보다 압도적으로 빠르지는 않다. 두 언어는 분명 다르지만, 사실 그렇게 다르지는 않기도 하다.

두 언어의 타깃은 코코아(Cocoa)와 코코아 터치(Cocoa Touch) API(각각 OS X, iOS용)로 동일하며, 정적타입언어(statically typed language)라는 점이나 동일한 LLVM 컴파일러를 이용한다는 점 역시 공통적이다. 물론 서로 다른 언어임은 분명하기에 성능 역시 차이가 있을 수밖에 없지만, 확연한 차이는 기대하지 않는 것이 좋다.

스위프트는 불완전하다. 현재 우리가 이용 가능한 스위프트는 완성품이 아니다. 애플은 여전히 작업을 진행 중이고, 향후 몇 달 간 새로운 기능들을 더 제시할 것이다. 언어를 익히기 위해 스위프트를 이용해 코딩해보는 것은 좋지만, 이를 위해선 X코드 6 베타(Xcode 6 beta)와 iOS 8 SDK(역시 베타 버전이다)가 필요할 것이다.

요세미티와 iOS 8 배포 전까진 스위프트 기반 앱에 대한 애플의 승인 역시 이뤄지지 않을 것이라는 사실도 다시 한 번 기억하자.


X