오픈소스 Swift가 가져올 변화들

Swift는 “빠르다”라는 뜻입니다. Apple이 Object-C의 단점을 개선하여 더 읽기 편하고, 버그가 있 소지를 줄여 안전하며, 최신 언어의 기능들을 받아들인 언어를 제공하기 위해서 1년 전에 새로운 언어 Swift를 iOS, OS X 생태계를 위해 발표하였습니다. 기존의 Obeject-C 코드와 같이 잘 동작하기 때문에 iOS 개발자들이 Swift를 빠르게 프로젝트에 적용해 나아가고 있습니다. Swift는 Stackoverflow에서 실시했던 설문에서 가장 사랑받는 언어로 조사돼기도 하였습니다. Swift가 발표된지 겨우 1년밖에 안된걸 생각하면 엄청난 결과입니다.

이런 개발 뉴스를 더 만나보세요

Swift는 이미 무료이고 공개되어있었는데, 왜 또 오픈소스 한다는건가요?

먼저, Swift는 아직 오픈소스로 공개되어있지 않습니다. 올해 7월에 Swift 2.0이 발표되었지만 Apple이 올해 안에 오픈소스로 풀겠다고 하였을 뿐 아직은 오픈소스로의 변경은 완료되지 않았습니다. 지금도 우리는 Swift를 잘 쓰고 있는데, Swift 가 오픈소스가 되면 어떤 점이 바뀌는 것일까요?

Swift가 오픈소스가 된다는 것은 한마디로 말해 Swift의 컴파일러와 표준 라이브러리가 오픈소스로 풀린다는 것을 의미합니다. 물론 현재는 컴파일러 코드가 공개되어있지 않습니다. 그러면 컴파일러 코드로 무엇을 할 수 있을까요?

위에 제가 Swift를 소개하면서 “iOS, OS X 를 위한 언어”라는 표현을 썼는데, Swift가 오픈소스가 되고 다른 플랫폼에 이식되면 Swift를 다른 플랫폼에서도 쓸 수 있게 됩니다. 예를 들면 이제 OS X 개발을 하기 위해서 꼭 Mac을 살 필요가 없어질지도 모릅니다. 물론 오픈소스로 풀리자마자 윈도우에서 아이폰 개발을 할 수 있는건 아니고, Swift 컴파일러와 라이브러리를 보고 윈도우에 포팅한다면 그렇게 될꺼라는 이야기 입니다. 또한 다양한 써드파티 개발 플랫폼에서 더 많은 iOS / OS X 앱들을 만들 수 있게 됩니다. 장기적으로 Apple의 앱 생태계가 더 풍부해질 수 있는 기초가 됩니다.

이뿐만 아니라 Swift가 Apple 플랫폼을 위한 언어를 넘어서 다양한 개발을 할 수 있는 범용 언어로 거듭날 수 있습니다. Swift를 가지고 윈도우 어플리케이션을 만들거나 서버 프로그래밍을 하는 등 범용 언어로 사용될 수 있는 기회가 열리게 됩니다. 물론, Swift가 윈도우개발의 주 언어가 되지는 않겠지만, 두 플랫폼 사이에 라이브러리 등의 공유나 크로스플랫폼 개발자들에게는 새로운 기회가 될 수 있습니다.

Swift Scripting 사례

Swift 개발자이고 다양한 자동화 작업을 위해서 Python이나 Ruby를 쓰고 있나요? 그렇다면 Swift는 자동화나 배치 작업을 위한 좋은 대안이 될 수 있습니다. Swift는 가볍고 읽기쉬운 문법을 가졌고 가벼운 느낌을 가진 문업을 사용하지만 strict한 컴파일러를 가지고 있습니다. 이런 특징 때문에 Swift는 Python/Ruby를 대체하여 다양한 작업을 정확하게 처리하는데 최적의 언어가 될지도 모릅니다. 또한 스크립트 환경에서 Swift의 API, Cocoa 라이브러리 등을 모두 사용할 수 있습니다.

물론 아직은 Swift를 스크립트 언어를 대체하여 사용하는 사용자가 많이 않기때문에 조금은 불편한 점이 있을 수 있습니다. 하지만 현재 이미 그렇게 쓰고 있는 많은 사례를 (Swift Scripting)이 공유되고 있으며 Swift가 오픈소스 됨에따라서 그 속도는 가속화 될 것입니다.

Apple이 처음에 Swift라는 언어를 발표했을 때 처음에는 왜 이렇게 커다란 결단을 내렸는지 많은 의구심이 들었습니다. 하지만 1년이 지난 지금 Apple이 Swift를 공개해서 개발자들이 앱을 더 빠르게 개발하고 있고, 또 움직임을 오픈소스를 통해서 가속화 하려는 움직임은 개발자 생태계를 애플에게 유리하게 만들어 장기적으로 애플 플랫폼을 확장하는데 도움을 줄 수 있습니다. 장기적인 안목을 가지고 플랫폼과 생태계를 꾸준히 발전시키는 Apple의 모습이 역시 세계 최대 시가총액을 가진 회사의 답다는 생각이 드네요.

컨텐츠에 대하여

이 컨텐츠는 저자의 허가 하에 이곳에서 공유합니다.


Realm Korea

Realm Korea Team

4 design patterns for a RESTless mobile integration »

close