블로그
2014년 06월 12일 05시 54분 KST | 업데이트됨 2014년 08월 12일 14시 12분 KST

애플, 드디어 일내다

잡스의 사후 갈 길을 잃고 방황하는 것처럼 보이던 애플이 드디어 모바일의 미래를 선도할 비밀병기를 내놓았다. 애플이 4년간의 개발을 거쳐 지난주 WWDC에서 발표한 새로운 프로그램 언어 '스위프트'가 바로 그것이다. 이번 키노트를 실질적으로 주도한 Craig Federighi는 자연어에 가깝도록 설계된 새로운 언어를 이용하면, 그동안 애플 애플리케이션 개발에 사용되어 온 오브젝트 C를 몰라도 손쉽게 앱을 개발할 수 있다고 '주장'한다. 과연 스위프트는 애플과 모바일 산업 전반에 어떤 영향을 미칠 것인가?

잡스의 사후 갈 길을 잃고 방황하는 것처럼 보이던 애플이 드디어 모바일의 미래를 선도할 비밀병기를 내놓았다. 애플이 4년간의 개발을 거쳐 지난주 WWDC에서 발표한 새로운 프로그램 언어 '스위프트'가 바로 그것이다.

(todaysiphone.com)

WWDC (World Wide Developer Conference)는 애플이 매년 개최하는 개발자 대상의 컨퍼런스로, 소프트웨어에 관련한 내용이 주를 이룬다. 지난주 열린 WWDC 2014 기조연설은 크게 꼭지로 나누어졌다. 첫번째는 맥용 OS.X '요세미티', 두번째는 iOS8, 그리고 마지막 세번째가 바로 개발자들을 흥분의 도가니로 몰아넣은 '스위프트'다.

스위프트의 등장

소비자의 입장에서는 OS.X 요세미티와 iOS8의 새로운 기능들이 직접적으로 와 닿지만, 이번 발표의 진짜 핵심은 애플이 전격 공개한 "스위프트"라는 새로운 프로그래밍 언어이다. 이번 키노트를 실질적으로 주도한 Craig Federighi는 자연어에 가깝도록 설계된 새로운 언어를 이용하면, 그동안 애플 애플리케이션 개발에 사용되어 온 오브젝트 C를 몰라도 손쉽게 앱을 개발할 수 있다고 '주장'한다. (실제 키노트 중간에 게임 제작하는 데모까지 보여주었다)

과연 스위프트는 애플과 모바일 산업 전반에 어떤 영향을 미칠 것인가?

오브젝트 C의 딜레마

애플의 딜레마는 아이러니컬하게도 자신의 응용프로그램 개발이 오브젝트 C를 기반으로 한다는 사실에 기인한다. 잡스가 Next 시절부터 채택한 오브젝트 C는 결코 배우기 쉽지 않은 언어다. 자신만의 아이폰용 소프웨어를 꿈꾸던 사람들 중 상당수는 오브젝트 C의 벽을 넘지 못하고 발길을 돌려야 했다. 기업들은 오브젝트 C를 제대로 구사하는 앱 개발자 구하지 못해 발을 동동 구른다. 결국 오브젝트 C는 앱스토어의 성공으로 폭팔적으로 성장하고 있는 애플의 개발자 에코시스템의 확장을 가로막는 결정적인 장애물이 되어버렸다.

"애플은 스위프트를 통해 앱 개발과정에서 오브젝트 C를 완전히 제거함으로써, 더 많은 개발자들을 자신들의 생태계로 흡수하려는 것이다"

스위프트의 환상

그렇다면, 애플의 주장처럼 오브젝트 C를 전혀 모르는 초보 프로그래머가 새로운 앱을 뚝딱 만들어 낼 수 있을까? 답은 '아니올시다'이다. 단말기용 캐주얼 게임은 가능하겠지만, 클라우드 기반의 하드코어 앱의 개발은 코딩만으로 되는 것이 아니다. 나는 오히려 기존 앱 개발자들이 스위프트를 활용해 개발 비용과 시간을 절약하는 쪽에 더 큰 의미를 둔다 (그들이 엔지니어의 아집을 버린다는 가정하에서). 장기적으로는 오브젝트 C를 완전히 제거하는 날이 올 것이고, 신세대 소프트웨어의 영웅들이 탄생하게 될 것이다. 80년대 소프트웨어 산업의 태동기에 그랬던 것처럼.

"그렇다면, 스위프트가 비판자들 주장대로 시중에 나온 다른 언어들을 짜깁기한 그저 그런 또 하나의 언어일 뿐인가? 내 대답은 '전혀 그렇지 않다'이다"

LLVM 컴파일러

스위프트가 이룩한 (그리고 앞으로 이룩하게 될) 기술적 성과의 깊이를 느끼기 위해서는 스위프트 개발을 총괄한 Chris Lattner에 주목해야 한다. 그는 일리노이 대학 시절부터 LLVM (Low Level Virtual Machine) 컴파일러로 이미 유명세를 탄 인물이다. 간단히 말해서, 그가 개발한 LLVM는 하나의 소프트웨어가 여러 개의 다른 하드웨어에서 동작하는 것을 가능하게 해주는 환상적인 컴파일러다.

2007년, IBM이 맥에 사용하던 파워PC칩 생산을 일방적으로 중단하자, 애플은 울며 겨자먹기로 인텔 칩을 사용할 수 밖에 없었다. 이 불가능할 것 같던 변환 작업을 불과 1년 반 만에 가능하게 해준 것이 바로 LLVM 컴파일러였다. LLVM 프로젝트를 마무리한 Chris는 2010년부터 LLVM에 적합한 새로운 프로그래밍 언어의 개발에 착수한다. 스위프트는 시작부터 LLVM컴파일러에 최적화된 언어로 탄생할 운명이었다는 말이다.

애플이 그리는 모바일의 미래

애플이 스위프트와 LLVM로 구현하는 통합 구조는 아래의 그림과 같다.

(임규태)

애플이 구축한 LLVM + 스위프트는 모바일용 iOS와 컴퓨터용 OS.X의 자연스러운 통합으로 이끌게 되고, 우리는 더 이상 컴퓨터와 모바일 기기를 구분할 수 없게 될 것이다. 혹자는 애플의 폐쇄성 때문에 스위프트가 모바일 산업에 미칠 영향이 국지적일 것이라고 주장하지만, 그것은 LLVM라는 괴물 컴파일러를 고려하지 않았기 때문에 발생하는 인식의 오류일 뿐이다.

LLVM은 오프소스 프로젝트에서 출발했다. Chris가 LLVM 프로젝트를 시작한 일리노이드 대학은 모자이크 웹브라우져가 탄생한 인터넷의 성지다. 오픈소스로 출발한 웹브라우져가 인터넷 세상을 꽃 피우고, 또다른 오픈 소스인 리눅스가 임베디드 세상을 만들었던 것처럼, 그가 만든 스위프트와 LLVM은 PC와 모바일 기기를 통합하는 또다른 기술 혁명의 시발점이 될 것이다.

아, 물론 한국과는 전혀 관계없는 먼나라 이야기다.