본문 바로가기

APPLE/APPLE Geek Bible

애플 스위프트, 오픈소스로 노리는 것


 애플은 지난해 오브젝티브-C(Object-C)를 대체할 새로운 프로그래밍 언어인 '스위프트(Swift)'를 공개했습니다. 오브젝티브-C의 단점을 보완한 언어로 당장 오브젝티브-C를 완전히 대체하는 건 아니며, 개선하면서 서서히 스위프트로 전환할 계획입니다.
 


애플 스위프트, 오픈소스로 노리는 것
 
 결론부터 말하자면 '스위프트에 참여하는 개발자를 늘리기 위함'입니다. 특별한 이유도 아니고, 마이크로소프트가 닷넷 프레임워크를 오픈소스로 돌린 것과 비슷하게 볼 수 있습니다. 단지 스위프트의 오픈소스화가 파급력이 어느 정도일까 하는 것입니다. 달리 말해서 그 부분에 애플이 노리는 것이 담겨 있죠.
 
 


 애플은 샌프란시스코에서 열린 WWDC 2015에서 차기 OS X과 iOS를 발표하면서 스위프트를 언급했습니다. 새로운 언어 생태계를 마련하려는 애플이기에 스위프트의 자리는 당연하며, '스위프트 2'라는 이름으로 소개되었습니다.
 
 성능 향상에 대한 짧은 설명도 있었으나 개발자들을 환호하게 한 건 단연 '오픈소스'였습니다. 애플은 하반기에 스위프트를 오픈소스로 공개하며, OS X과 iOS뿐만 아니라 리눅스에서도 스위프트 프로그램을 컴파일할 수 있다고 밝혔습니다. '애플이 오픈소스?'라고 생각되기도 하겠지만, 웹킷만 하더라도 애플이 오픈소스와 등을 지고 있었던 건 아닙니다.
 
 그저 애플의 새로운 표준 언어로 등장한 스위프트의 오픈소스화가 오브젝티브-C와 겹쳐서 봤을 때 흥미로운 것이며, 스위프트 개발자가 애플 생태계에 갇혀있지 않아도 된다는 사실에 많은 개발자가 박수를 치게 한 것입니다.
 
 하지만 스위프트가 오픈소스를 선언했다고 해서 타 플랫폼을 넘나들어 영향력을 발휘할 것이라고 보긴 어렵습니다. 애플 생태계에 관심이 적은 개발자라면 굳이 스위프트에 접근할 이유가 애초부터 없고, 보급을 시도하기에도 추가해야 할 요소가 많은 탓에 아직 오브젝티브-C와 병행하여야 하므로 완전히 애플 생태계의 울타리를 벗어난 것도 아닌 데다 파이썬 등 강력한 오픈소스 경쟁자가 있기에 오픈소스를 선언한 것이 날개가 될 수는 있지만, 날 수 있다고 말할 단서가 되진 못한다는 겁니다.
 
 그런 점을 애플이 인지를 못 하진 않았을 테고, 애플의 목표가 스위프트의 보급이라면 상기한 걸림돌을 해결하는 게 과제입니다. 그렇다면 의아한 게 '왜 그래야 하냐?'입니다.
 
 


 기존 표준 언어였던 오브젝티드-C처럼 스위프트를 운영하더라도 큰 걸림돌이라 할만한 게 없습니다. 되레 오픈소스를 선언하면서 오픈소스로서 영향력에 초점이 맞춰지다 보니 걸림돌이 생겨난 셈이죠. 그런데도 스위프트는 오픈소스로 올리기로 한 것은 앞서 얘기했듯이 참여 개발자를 늘리려는 목적이 강합니다.
 
 다만 타 플랫폼을 겨냥한다는 자체가 독점한 소프트웨어와 하드웨어가 핵심인 애플에 큰 도움이진 않습니다. 해당 생태계를 고립하여 더 단단히 하는 게 낫죠.
 
 애플은 스위프트의 오픈소스화와 함께 몇 가지 개발자에 변경 사항을 전달했습니다. 하나는 OS X과 iOS를 나누어졌던 개발자 프로그램을 합치면서 하나의 개발자 프로그램으로 OS X과 iOS 앱 개발과 판매가 가능해졌습니다. 그리고 개발자 프로그램이 없더라도 개발자의 아이폰에 개발한 프로그램을 실행할 수 있게 했습니다.
 
 사실 모바일에서 iOS의 경쟁자라고 하면 안드로이드뿐이라 해도 과언이 아닙니다. 그렇다고 iOS 점유율이 낮은 것도 아니어서 타 플랫폼을 겨냥하더라도 모바일에서는 스위프트 개발이 iOS에 머물 여지가 큽니다. 또한, 개발자 프로그램 없이 아이폰에서 앱을 실행할 수 있게 하여 아이폰을 가진 타 플랫폼 개발자가 접근하기 수월해졌습니다. 쉽게 말해서 타 플랫폼보다 애플 플랫폼에 끼치는 영향이 더 커지도록 했죠.
 
 그리고 UX킷으로 OS X과 iOS 앱을 통합하여 개발할 가능성을 키웠고, Xcode 6.1부터 스위프트로 OS X 앱을 작성할 수 있게 했으며, 이번에는 개발자 프로그램을 합쳤습니다. iOS 개발자가 OS X 개발에 참여 유도로 볼 수 있는데, 오픈소스로 개발자 커뮤니티가 강화했을 때 그런 부분에서 시너지가 생길 것은 노리는 것입니다.
 
 이는 오픈소스 자체보다 애플이 모바일 영향력을 OS X으로도 옮기려는 시도에 오픈소스라는 실마리도 제공한 거죠.
 
 


 그런 실마리는 메탈(Metal)에서도 찾을 수 있는데, 이미 맥이 게임과 동떨어진 플랫폼이라는 사실을 부정하는 이는 없겠지만, 애플은 오랫동안 지지하던 오픈GL을 대체하여 메탈이라는 자체 그래픽 라이브러리를 맥에도 적용했습니다. 다이렉트 X와 경쟁하겠다는 것으로 볼 수 있으나 '이게 경쟁이 될까?' 싶은데, 애플이 오픈소스로 노리는 것이 OS X으로 이어진다고 했을 때 애플이 어느 정도 큰 그림을 꿈꾸고 있다는 걸 알 수 있죠.
 
 어쨌든 그림을 그리려면 시작이 필요하기에 스위프트를 보급하고, 개발 환경을 갈아엎어서 자사 플랫폼에 힘을 싣는 시도라면 오픈소스는 꽤 훌륭한 기점입니다.
 
 말 그대로 큰 그림이기에 이렇게 노린 점만으로 '애플 생태계가 스위프트의 오픈소스화로 커진다.'라고 단언하긴 어렵습니다. 단지 애플이 왜 오픈소스를 시도하느냐에 주목한다면 애플 플랫폼의 발전 방향을 지켜보는 데 도움은 되리라 생각합니다.