본문 바로 가기

[ 테크 ]

애플이 스위프트를
오픈소스로 공개한 의미는?

by안병도

애플이 6월 8일(현지시간)에 개최한 세계 개발자회의(WWDC) 2015는 그 이름 그대로 개발자를 위한 행사이다. 물론 기본적으로 개인 사용자를 위한 제품만 만드는 애플의 특성상 모든 것이 사용자와 관련이 제품이나 서비스이다. 때문에 개발자를 위한 행사임에도 사용자의 관심이 높으며, 늘 새로운 변화를 추구하기에 지루하지도 않다.

 

그런데 이번 행사에서 흥미있는 장면이 있었다. 애플이 개발해서 2014년 WWDC에서 공개한 개발언어 스위프트를 오픈소스화 하겠다는 말을 했을 때였다. 구체적이고 자세한 설명도 없었고 그렇게 중점을 둬서 말하지도 않았다. 그럼에도 순간 참석한 개발자들의 환성과 박수소리를 상당히 컸다. 반대로 개발에 대해서 잘 모르는 일반 사용자는 이것이 무슨 의미인지를 몰라서인지 큰 반응을 보이지 않았다.

애플이 스위프트를 오픈소스로 공개한

스위프트는 애플이 iOS와 OS X 소프트웨어 생태계를 보다 풍부하게 만들기 위해 내놓은 프로그래밍 언어이다. 과연 어떤 장점을 가졌으며 이것을 오픈 소스한다는 것이 무슨 의미를 가지는지 살펴보도록 하자.

스위프트(Swift) - 맥과 아이폰용 앱 모두 제작가능

애플 기기는 운영체제에 따라 크게 두 가지로 나눌 수 있다. 일반적인 컴퓨터 형태를 한 매킨토시(맥)에 탑재되는 OS X기기와 모바일 기기인 아이폰, 아이패드 등에 들어가는 iOS이다. 사실 이 두 운영체제도 엄밀하게 말하면 같은 계열이다. 예전 넥스트 컴퓨터에 채택된 넥스트스텝을 기반으로 같은 다윈 커널을 쓰기 때문이다. OS X에서 스마트폰 운영에 필요없는 기능을 모두 제거하고, 모바일에 특화된 기능을 추가한 버전이기 때문이다.

애플이 스위프트를 오픈소스로 공개한

그럼에도 개발 역사가 달라서 그동안  맥 개발을 위해서는 C, iOS 개발을 위한 오브젝티브-C를 써 왔다. 이들은 비교적 낡은 언어이며 둘로 나눠져 있다. 따라서 간결한 통합을 중시하는 애플로서는 하나의 언어로 두 가지를 모두 개발하게 한다면 애플 개발자에게 보다 편리하겠다는 생각에 이것을 지원하게 되었다. 새로운 프로그래밍 언어 스위프트는 맥의 OS인 OS X와 아이폰의 OS인 iOS를 모두 지원한다. 게다가 기존에 써 왔던 C와 Objective-C 코드도 함께 사용할 수 있어 적응하기도 쉬워졌다.

애플이 스위프트를 오픈소스로 공개한

또한 스위프트 언어는 새로운 객체지향형 언어로서 기존 오브젝티브-C보다 적은 양의 코드로 같은 결과물을 만들 수 있다. 애플 발표로는 오브젝티브-C 대비 1.5배, 파이썬 대비 200배이다. 오브젝티브-C와 같은 LLVM컴파일러로 빌드되며 같은 런타임을 사용하면서 클로저, 다중 리턴 타입, 네임스페이스, 제네릭스, 타입 인터페이스 등 현대 프로그래밍 언어가 갖고 있는 기능을 많이 포함시켜 성능향상을 이뤄냈다.

오픈소스화 - 무료제공, 다중 플랫폼에서 구동가능

오픈소스란 일단 글자 그대로 소스가 되는 원천 코드를 공개하는 것을 말한다. 소스코드가 공개되면 개발자는 전체 프로그램의 작동원리를 알 수 있다. 어떤 곳에 문제가 있으며 어떤 코드를 추가하면 해결할 수 있는지도 분석을 통해 파악할 수 있다. 또한 부분적인 성능을 개선하거나 완전히 다른 플랫폼과 운영체제에서 쓸 수 있도록 개량할 수 있다.

 

애플은 폐쇄적이라는 지적을 받고 있지만 자체 역량이 부족한 부분에서는 오픈소스를 적극 이용하는 행보를 걸어왔다. 운영체제의 커널 부분에서는 Mach 커널에서 발전된 다윈 커널을 오픈소스화 시켰다. 또한 사파리에 탑재된 웹킷 엔진 역시 오픈소스 진영과 협업한 결과물이다. 이번에도 개발언어 부분에서 스위프트를 오픈소스로 하면서 역량 강화를 노리고 있는 것으로 보인다.

애플이 스위프트를 오픈소스로 공개한

애플은 스위프트를 오픈소스로 공개하며 iOS, OS X뿐 아니라 리눅스에서도 지원하겠다고 밝혔다. 리눅스가 대표적인 오픈소스 운영체제이며 능력있는 개발자가 많이 사용한다는 점을 고려한 판단이다. 또한  더 생산적인 앱 개발을 돕는 스위프트2를 선보일 것이라고 덧붙였다. 이제까지 앱스토어에 등록된 앱 중 스위프트를 통해 개발한 앱은 1만 5천여개로서 많다고 볼 수도 있지만 기대만큼 활성화되지는 못했다.

 

오픈소스화는 기본적으로 무료제공을 전제로 한다. 소스가 공개되어 누구나 변형하고 가져다 쓸 수 있는데 따로 돈을 주고 팔 수는 없기 때문이다. 또한 개발자의 의지에 따라서는 윈도우용으로도 만들 가능성이 열린다. 윈도우용 스위프트가 나온다면 윈도우에서 맥이나 아이폰용 앱을 만들 수도 있게 된다.

애플이 스위프트를 오픈소스로 공개한

이렇듯 스위프트 처럼 우수한 개발언어를 오픈소스화하면 개발자에게 훨씬 많은 자유와 기회가 주어진다. 또한 맥이 있어야만 아이폰용 앱을 개발할 수 있던 종래의 제한도 없어질 수 있다. 따라서 개발자에게 많은 환호를 받은 것이다. 앞으로 스위프트의 발전을 주목해 보자.