2016.01.28

ITWorld 용어풀이 | 스위프트

박상훈 기자 | ITWorld
'스위프트(Swift)'는 iOS와 OS X에서 실행할 수 있는 소프트웨어를 개발할 때 사용하는 프로그래밍 언어입니다. 'iOS'은 아이폰, 아이패드 같은 모바일 기기에 사용하는 운영체제이고 'OS X'은 맥북이나 맥 같은 PC에 사용하는 운영체제입니다. 애플은 기존에 사용하던 '오브젝티브-C'(Objective-C) 언어를 보완하고 대체하기 위해 스위프트를 개발했고, 2014년 6월 2일 WWDC 행사에서 처음 세상에 공개했습니다.

스위프트는 발표 직후부터 뜨거운 관심을 끌었습니다. 레드몽크(RedMonk)의 프로그래밍 언어의 순위를 보면 출시 1년도 안 돼 상위 20위에 안착했습니다. 구글의 '고(Go)' 언어가 4년 걸린 것과 비교하면 그 성장세를 짐작할 수 있습니다. 특히 애플은 지난해 12월 스위프트를 오픈소스로 공개했습니다. 올해 더 많은 개발자가 스위프트의 영향권에 들어갈 것으로 보입니다. 도대체 스위프트가 무엇이길래 이런 인기를 누리는 것일까요?



먼저 애플은 잘 쓰던 오브젝티브-C를 두고 왜 스위프트를 새로 개발했는지부터 이야기를 시작해 보죠. 간단합니다. 오브젝티브-C가 너무 어려웠기 때문입니다. 프로그래밍 언어는 각자 장단점이 있지만 오브젝티브-C는 다른 언어가 쓰지 않는 독특한 문법을 많이 사용합니다. 그러니 베테랑 개발자한테는 번거롭고, 초보 개발자에게는 부담스럽죠. 꼭 써야 할 필요가 없다면 더 범용적인 언어를 공부하는데 시간을 투자하는 것이 합리적인 선택인 것입니다.

연식이 오래된 것도 한 이유입니다. 오브젝티브-C가 나온 지 벌써 30년입니다. 최근에 나온 '젊은' 언어들과 비교하면 문법적인 까다로움은 물론, 언어가 지원하는 기능도 떨어진다는 지적이 많았습니다. 결국 애플은 사용성과 기능성을 높이기 위해 스위프트라는 새로운 대안을 내놓았습니다. 실제로 애플은 스위프트를 개발하면서 클로저, 다중 리턴 타입, 네임스페이스, 제네릭스 같은 다른 언어의 기능을 대거 추가했습니다.

기술 외적인 요소도 있습니다. 바로 더 많은 개발자를 우군으로 확보하기 위해서입니다. 작게는 모바일 플랫폼 시장, 크게는 IT 시장 전체가 이젠 하드웨어가 아닌 소프트웨어 중심으로 재편됐습니다. 새로운 앱, 새로운 사용자 경험을 만드는 것이 개발자인데, 그들이 불편해 하면 경쟁에서 밀릴 수 밖에 없습니다. 쉽게 바꿨으니 더 많은 앱을 만들라는 개발자를 향한 구애의 메시지가 바로 스위프트인 셈입니다.


이미지 소스 : Flickr / Yuko Honda

여기서 개발자는 윈도우 플랫폼 개발자까지 포함합니다. 스위프트는 기존 언어인 오브젝티브-C와 호환되고 컴파일러도 같습니다. 기존에 iOS용 앱을 만들던 개발자는 새로 배워야 할 것이 없습니다. 반면 새로운 개발자가 애플 플랫폼에 적응하기는 더 쉬워졌죠. 더 많은 개발자가 애플 앱 생태계에서 활동할수록 시장이 커지고, 이를 쓰는 사용자는 기꺼이 새 아이폰을 구입할 겁니다. 애플은 아이폰과 앱을 팔아 더 많은 이익을 낼 수 있죠.

지난해 12월 스위프트를 오픈소스로 공개한 것은 특히 눈여겨볼 필요가 있습니다. 이제 스위프트 소스 코드가 완전히 공개돼 누구나 깃허브에서 원본 리포지토리를 가져와 코드를 테스트할 수 있게 됐습니다. 과거에는 애플이 일방적으로 정한 가이드라인 안에서 개발해야 했다면 이제는 개발자가 스위프트에 개선 사항을 제안하는 것도 가능해졌습니다. '폐쇄적'이라는 꼬리표가 붙던 애플엔 작지 않은 변화이죠.

더 흥미로운 것은 스위프트를 오픈소스화해 애플 개발 프레임워크를 다른 플랫폼으로 확장할 가능성이 생긴 것입니다. 특히 코어 라이브러리가 공개된 만큼 이제 스위프트로 한번 코드를 짜면 다른 플랫폼에서 재사용하는 것을 시도할 수 있게 됐습니다. 스위프트가 순조롭게 발전한다면 개발자는 마이크로소프트 오픈소스 닷넷 외의 대안을 갖게 되고, 자마린(Xamarin) 같은 크로스 플랫폼 툴 업체의 지원도 확대될 것입니다.



스위프트는 앞으로 어떻게 발전해 갈까요? 일단 애플이 공격적으로 지원하는 것은 분명합니다. 1.0 버전이 나온 지 불과 1년 반 만에 벌써 2.1버전이 나왔으니까요. 반면 일부 개발자는 스위프트의 안정성에 여전히 문제가 많다고 지적합니다. 심지어 애플이 과연 오픈소스를 꾸준히 지원할 것인지 의심하는 사람도 있습니다. 실제로 애플은 '페이스타임'을 개방형 표준으로 발전시킬 것이라고 '허언'을 한 전력이 있습니다. 2010년 스티브 잡스의 말이었죠.

최근 스위프트가 주목받는 다른 이유는 '애플 위기론'입니다. 일부 전문가는 새로운 성장동력을 찾기 위해 애플 생태계를 안드로이드와 윈도우 같은 다른 플랫폼으로 확대하는 것을 제안합니다. 단순하고 안정적인 애플의 사용자 경험은 경쟁력이 충분하다는 것이죠. 당연히 적진으로 돌격하는 전초기지는 스위프트입니다. 조만간 윈도우용 아이메시지 앱이나 안드로이드 폰과 연동되는 애플 워치를 볼 수 있을지도 모르겠네요. editor@itworld.co.kr


2016.01.28

ITWorld 용어풀이 | 스위프트

박상훈 기자 | ITWorld
'스위프트(Swift)'는 iOS와 OS X에서 실행할 수 있는 소프트웨어를 개발할 때 사용하는 프로그래밍 언어입니다. 'iOS'은 아이폰, 아이패드 같은 모바일 기기에 사용하는 운영체제이고 'OS X'은 맥북이나 맥 같은 PC에 사용하는 운영체제입니다. 애플은 기존에 사용하던 '오브젝티브-C'(Objective-C) 언어를 보완하고 대체하기 위해 스위프트를 개발했고, 2014년 6월 2일 WWDC 행사에서 처음 세상에 공개했습니다.

스위프트는 발표 직후부터 뜨거운 관심을 끌었습니다. 레드몽크(RedMonk)의 프로그래밍 언어의 순위를 보면 출시 1년도 안 돼 상위 20위에 안착했습니다. 구글의 '고(Go)' 언어가 4년 걸린 것과 비교하면 그 성장세를 짐작할 수 있습니다. 특히 애플은 지난해 12월 스위프트를 오픈소스로 공개했습니다. 올해 더 많은 개발자가 스위프트의 영향권에 들어갈 것으로 보입니다. 도대체 스위프트가 무엇이길래 이런 인기를 누리는 것일까요?



먼저 애플은 잘 쓰던 오브젝티브-C를 두고 왜 스위프트를 새로 개발했는지부터 이야기를 시작해 보죠. 간단합니다. 오브젝티브-C가 너무 어려웠기 때문입니다. 프로그래밍 언어는 각자 장단점이 있지만 오브젝티브-C는 다른 언어가 쓰지 않는 독특한 문법을 많이 사용합니다. 그러니 베테랑 개발자한테는 번거롭고, 초보 개발자에게는 부담스럽죠. 꼭 써야 할 필요가 없다면 더 범용적인 언어를 공부하는데 시간을 투자하는 것이 합리적인 선택인 것입니다.

연식이 오래된 것도 한 이유입니다. 오브젝티브-C가 나온 지 벌써 30년입니다. 최근에 나온 '젊은' 언어들과 비교하면 문법적인 까다로움은 물론, 언어가 지원하는 기능도 떨어진다는 지적이 많았습니다. 결국 애플은 사용성과 기능성을 높이기 위해 스위프트라는 새로운 대안을 내놓았습니다. 실제로 애플은 스위프트를 개발하면서 클로저, 다중 리턴 타입, 네임스페이스, 제네릭스 같은 다른 언어의 기능을 대거 추가했습니다.

기술 외적인 요소도 있습니다. 바로 더 많은 개발자를 우군으로 확보하기 위해서입니다. 작게는 모바일 플랫폼 시장, 크게는 IT 시장 전체가 이젠 하드웨어가 아닌 소프트웨어 중심으로 재편됐습니다. 새로운 앱, 새로운 사용자 경험을 만드는 것이 개발자인데, 그들이 불편해 하면 경쟁에서 밀릴 수 밖에 없습니다. 쉽게 바꿨으니 더 많은 앱을 만들라는 개발자를 향한 구애의 메시지가 바로 스위프트인 셈입니다.


이미지 소스 : Flickr / Yuko Honda

여기서 개발자는 윈도우 플랫폼 개발자까지 포함합니다. 스위프트는 기존 언어인 오브젝티브-C와 호환되고 컴파일러도 같습니다. 기존에 iOS용 앱을 만들던 개발자는 새로 배워야 할 것이 없습니다. 반면 새로운 개발자가 애플 플랫폼에 적응하기는 더 쉬워졌죠. 더 많은 개발자가 애플 앱 생태계에서 활동할수록 시장이 커지고, 이를 쓰는 사용자는 기꺼이 새 아이폰을 구입할 겁니다. 애플은 아이폰과 앱을 팔아 더 많은 이익을 낼 수 있죠.

지난해 12월 스위프트를 오픈소스로 공개한 것은 특히 눈여겨볼 필요가 있습니다. 이제 스위프트 소스 코드가 완전히 공개돼 누구나 깃허브에서 원본 리포지토리를 가져와 코드를 테스트할 수 있게 됐습니다. 과거에는 애플이 일방적으로 정한 가이드라인 안에서 개발해야 했다면 이제는 개발자가 스위프트에 개선 사항을 제안하는 것도 가능해졌습니다. '폐쇄적'이라는 꼬리표가 붙던 애플엔 작지 않은 변화이죠.

더 흥미로운 것은 스위프트를 오픈소스화해 애플 개발 프레임워크를 다른 플랫폼으로 확장할 가능성이 생긴 것입니다. 특히 코어 라이브러리가 공개된 만큼 이제 스위프트로 한번 코드를 짜면 다른 플랫폼에서 재사용하는 것을 시도할 수 있게 됐습니다. 스위프트가 순조롭게 발전한다면 개발자는 마이크로소프트 오픈소스 닷넷 외의 대안을 갖게 되고, 자마린(Xamarin) 같은 크로스 플랫폼 툴 업체의 지원도 확대될 것입니다.



스위프트는 앞으로 어떻게 발전해 갈까요? 일단 애플이 공격적으로 지원하는 것은 분명합니다. 1.0 버전이 나온 지 불과 1년 반 만에 벌써 2.1버전이 나왔으니까요. 반면 일부 개발자는 스위프트의 안정성에 여전히 문제가 많다고 지적합니다. 심지어 애플이 과연 오픈소스를 꾸준히 지원할 것인지 의심하는 사람도 있습니다. 실제로 애플은 '페이스타임'을 개방형 표준으로 발전시킬 것이라고 '허언'을 한 전력이 있습니다. 2010년 스티브 잡스의 말이었죠.

최근 스위프트가 주목받는 다른 이유는 '애플 위기론'입니다. 일부 전문가는 새로운 성장동력을 찾기 위해 애플 생태계를 안드로이드와 윈도우 같은 다른 플랫폼으로 확대하는 것을 제안합니다. 단순하고 안정적인 애플의 사용자 경험은 경쟁력이 충분하다는 것이죠. 당연히 적진으로 돌격하는 전초기지는 스위프트입니다. 조만간 윈도우용 아이메시지 앱이나 안드로이드 폰과 연동되는 애플 워치를 볼 수 있을지도 모르겠네요. editor@itworld.co.kr


X