“어떤 사람들은 오픈소스에 문제가 있다고 생각합니다. 우리는 오픈소스가 아주 훌륭하다고 생각합니다. (Some people have a problem with open source. We think it is great.)”
2003년 한 발표장에서 나온 이야기입니다. 누가 이 말을 했을지 예상이 되시나요? 오픈소스 개발자? 리눅스 창시자? 정답은 다름 아닌 스티브 잡스입니다. 샌프란시스코에 열린 맥 월드 콘퍼런스에서 스티브 잡스 애플 설립자는 사파리 브라우저 설명을 하다가 위와 같은 이야기를 합니다. ‘Open Source’라고 쓰인 큼직한 글자를 발표자료로 보여주면서 말이죠.
스티븐 잡스가 이야기하는 Open Source
애플과 오픈소스. 언뜻 보면 이 둘이 잘 어울리지 않을 수 있다고 생각할 수 있습니다. 애플의 기술들을 한번 떠올려볼까요? 상당수가 폐쇄성이라는 특징을 가집니다. 반대 진영에 있는 안드로이드와는 전혀 다른 정책이죠. 그러다 보니 애플은 폐쇄된 기술을 선호하고, 오픈소스 기술에 대해서는 적대적이지 않을까라는 추측을 할 수도 있습니다.
하지만 실상은 조금 다릅니다. 애플은 크고 작은 다양한 오픈소스 기술에 관여, 개발하고 있습니다. 위에서 언급한 스티브 잡스의 발언도 그런 애플의 방향을 잘 보여줍니다. 특히, 최근에는 많은 오픈소스 기술에 대해서 더욱 적극적으로 개발하고 외부에 홍보까지 하고 있습니다.
l 애플 그리고 오픈소스(출처: https://youtu.be/cMPQuv34vxQ?t=49s)
좀 더 자세히 살펴보겠습니다. 애플에게 오픈소스는 어떤 존재일까요? 공식 홈페이지에 가면 그 힌트가 있습니다.
“오픈소스 소프트웨어는 애플 플랫폼과 도구의 핵심이고, 애플은 많은 양의 소스코드를 출시하고, 코드 기여를 계속하고 있습니다. (Open source software is at the heart of Apple platforms and developer tools, and Apple continues to contribute and release significant quantities of open source code.)
애플 오픈소스 홈페이지
애플은 단순히 노트북, 스마트폰을 개발하고 판매하는 하드웨어 기업이 아닙니다. 애플은 제품 내에 사용하고 있는 다양한 소프트웨어를 직접 개발하고 있는데요. 여기에 애플은 앱스토어라는 생태계를 구축하고, 애플 플랫폼 위에서는 누구나 앱이나 프로그램을 개발할 수 있게 지원하고 있습니다. 바로 이 플랫폼과 개발 도구에는 다양한 오픈소스 기술들이 활용되고 있다는 뜻입니다.
다르게 해석하자면 iOS나 Mac OS, watchOS, tvOS 위에 돌아가는 앱을 만들고 싶은 분이 있다면 어느 정도 오픈소스 기술의 지식을 가지고 있으면 좋겠다는 말이기도 합니다. 아래는 애플의 대표 오픈 소스 기술입니다.
l 스위프트 출처: https://developer.apple.com/swift/)
애플이 2014년 6월 배포한 보도자료에 따르면 “스위프트는 오브젝티브C 언어를 이용할 때 흔히 발생하는 에러를 줄일 수 있도록 설계됐으며 좀 더 안정성을 높일 수 있을 것”이라며 “직관적이고 배우기 쉬운 언어”라고 설명하고 있습니다. 2015년 12월에는 스위프트 2.0버전을 공개하고, 이를 오픈소스 언어로 전화하겠다고 발표했습니다. 1 2
크레이그 페데리(Craig Federigh) 애플 소프트웨어 엔지니어링부 시니어 부사장은 2015년 12월 <더넥스트웹>과 인터뷰를 하면서 애플이 스위프트에 얼마나 공을 들였는지 밝히기도 했는데요. 그는 “개발자들이 사용하는 주 언어가 스위프트가 됐으면 좋겠다”라며 “스위프트를 처음 개발할 때 모바일 앱부터 클라우드까지 어디서든 쓰일 수 있는 언어가 될 수 있도록 신경 썼다”라고 설명했습니다. 또한, 스위프트는 향후 20년간 쓰일 주류 언어가 될 것이라고 기대하기도 했습니다. 3
스위프트가 오픈소스 언어로 전환되면서 그 인기는 더욱 높아지고 있습니다. 애플 직원뿐만 아니라 외부 개발자도 스위프트 내부 개발 과정을 살펴보고 문제점 개선도 함께 할 수 있었기 때문입니다. 2015년 개발자 커뮤니티인 스택 오버플로우가 진행한 설문조사에서 스위프트는 ‘가장 사랑받는 언어’ 1위로 뽑히기도 했고요. 2016년에는 2위로 선정됩니다. 4 2017년에는 조금 더 밀려 4위로 뽑혔다고 합니다. 5하지만 배우기 쉽고 최근 트렌드를 잘 반영한 언어라 여전히 많은 iOS 개발자들이 스위프트를 배우고 있다고 하네요. 6
스위프트 홈페이지
리서치키트가 연구원이나 학자를 위한 기술이었다면, 케어키트는 의사나 치료사들을 위한 기술입니다. 예를 들어, 약 복용량을 데이터로 기록한다거나, 수면시간, 통증 정도 등을 기록해 모니터링 하는 앱을 개발할 수 있다고 합니다. 이런 기능은 보안, 시각화 기술들을 전부 구현해야 하는데요. 케어키트를 이용하면 이를 더욱 쉽게 넣어 앱을 만들 수 있다고 합니다. 이미 파트너십을 맺은 다양한 대학 병원과 의료 기관들이 제공하는 서비스도 연계해서 이용할 수 있다고 합니다.
애플의 오픈소스(Open Sourece at Apple)
다윈 기술은 이후 맥 OS 기술의 근간이 됐으며, iOS, watchOS, tvOS에도 활용이 됐습니다. 오픈소스 기술이긴 하지만 그 안에 있는 모든 기술이 공개된 건 아닙니다. 라이브러리, 드라이버, 유닉스 계열 명령 등과 관련된 기술이 주로 공개됐으며, 코코아나 카본 프레임워크가 같은 윗단에 있는 기술은 여전히 외부에서 볼 수 없습니다. 2017년 10월에는 이와 관련된 흥미로운 발표도 있었는데요. iOS와 macOS의 ARM 프로세서용 커널을 오픈소스로 공개했다는 소식입니다.
현재 해당 기술을 애플의 깃허브 계정에서 볼 수 있습니다. 테크크런치는 이 소식을 보도하면서 “애플이 개발자들의 반응을 살펴보기 위해 ARM 칩에 최적화된 커널을 공개한 것일 수 있다.”라고 추측하기도 했습니다. 7
* 해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 LG CNS 블로그에 저작권이 있습니다.
* 해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.
- https://www.apple.com/newsroom/2014/06/02Apple-Releases-iOS-8-SDK-With-Over-4-000-New-APIs/ [본문으로]
- https://developer.apple.com/swift/blog/?id=34 [본문으로]
- https://thenextweb.com/apple/2015/12/03/qa-apples-craig-federighi-talks-open-source-swift-objective-c-and-the-next-20-years-of-development/ [본문으로]
- https://insights.stackoverflow.com/survey/2015#tech-super [본문으로]
- https://insights.stackoverflow.com/survey/2016#technology-most-loved-dreaded-and-wanted [본문으로]
- https://insights.stackoverflow.com/survey/2017#most-loved-dreaded-and-wanted [본문으로]
- https://techcrunch.com/2017/10/01/apple-open-sourced-the-kernel-of-ios-and-macos-for-arm-processors/ [본문으로]