개발도구의 핵심 오픈소스(Open Source) ­

>

2003년 스티브잡스는 말합니다.

”Some people have a problem with open source. We think it is great.”- 몇몇의 사람들은 오픈소스에 문제가 있다고 생각합니다.

우리는 오픈소스가 훌륭하다고(great) 생각합니다.

샌프란시스코에서 개최된 Mac World Conference 에서 Apple 설립자인 스티브잡스가 Safari 브라우저를 설명하며 한 말입니다.

관련 영상: https://youtu.be/cMPQuv34vxQ

사실 애플의 기술이라고 하면 가장 먼저 떠오르는 것이 폐쇄성입니다.

안드로이드와 정 반대의 정책을 사용하고 있죠. 그래서 한편으로는 스티브잡스의 입에서 “오픈소스가 훌륭하다” 라는 말이 나오는 것이 이상할 수 있는데요. 사실 애플은 다양한 오픈소스 기술을 개발하고 있습니다.

스티브잡스의 발언 역시 그런 방향을 나타내고 있습니다.

또, 최근 여러 가지의 오픈소스를 개발하고 외부에 홍보하는 모습도 보여주었습니다.

애플 공식 사이트에는 이렇게 적혀 있습니다.

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 – 오픈소스 소프트웨어는 애플의 플랫폼 그리고 개발 장치들의 심장 역할을 하고, 애플의 많은 양의 오픈소스 코드를 공개하며 기여(Contribute)하고 있습니다.

우리는 애플이란 말을 들으면 한 입 베인 바이트 애플(Bite Apple) 그리고 아이핸드폰, 아이패드, 맥 정도를 생각합니다.

사실 애플은 단순한 노트북, 태블릿, 스마트핸드폰을 판매하는 하드웨어의 기업이 아닙니다.

애플은 iOS라는 애플 제품 내에서 사용되는 소프트웨어를 ‘직접’ 개발하여 사용하고 있습니다.

또, 앱 스토어라는 것을 이용해 애플의 플랫폼 아래에서 그 누구든 프로그램들을 개발할 수 있게 지원하고 있습니다.

즉 애플의 오픈소스에 대한 지식이 있다면, iOS, Mac OS 등 애플 운영체제에서 실행되는 프로그램을 만들 수 있다는 이야기입니다.

>

가장 대표적이며 인기 있는 애플의 오픈소스는 당연 스위프트(Swift) 언어라고 할 수 있습니다.

스위프트는 C언어처럼 애플이 직접 만든 프로그램 언어입니다.

요즘 모던 프로그래밍 언어라는 개념이 등장하고 있는데요. 기업과 커뮤니티 등에서 최근 개발 환경을 반영하고, 개발자들이 원하는 특징과 기능을 탑재한 프로그래밍 언어를 발표하고 있습니다.

스위프트 역시 이 기술의 한 부분인데요. 앱 개발자는 애플 개발 도구 Xcode를 이용해야 합니다.

스위프트를 선두로 애플은 개발 도구를 오픈소스 형태로 공개하였습니다.

대표적인 케이스가 리서치카트와 케어키트인데요. 리서치키트는 의료 연구에 관련한 어플을 만들 때 활용할 수 있고, 케어케트는 수면 시간을 모니터링하는 어플을 개발할 때 사용합니다.

특히 케어키트를 사용하면 보안 기술, 시각화 기술들을 전부 구현할 수 있습니다.

웹킷은 웹 브라우저 엔진 기반 오픈소스입니다.

아이핸펀 유저가 사용하는 사파리에 웹킷이 활용되었습니다.

또 우리가 자주 사용하는 구글 크롬(Google Chrome) 브라우저는 웹킷 기술을 활용해 개발되었습니다.

사실 웹킷은 KHTML라는 오픈소스를 기초로 만들어졌다고 합니다.

그 후 애플이 기능을 수정해 개발한 오픈소스 기술이 웹킷입니다.

2000년대 초반 애플의 개발자 행사에서 빠지지 않는 설명이 ‘다윈 프로젝트’에 대한 설명이었습니다.

다윈은 애플에서 개발한 유닉스 운영 시스템인데요. 2000년에 최초로 공개했고, 대부분의 소스코드가 스티브잡스의 전 회사 넥스트(Next)에서 개발한 기술에서 시작되었습니다.

이 기술은 맥 OS의 기초가 되었고, iOS, tvOS 등등 애플에서 개발된 대부분의 운영 체제에서 활용이 되었습니다.

물론 모든 소스가 공개되지는 않았습니다.

공개된 소스는 라이브러리, 유닉스 명령, 드라이버 정도가 주로 공개되었고 아직 카본 프레임워크 같은 일선 기술들은 공개되지 않았습니다.

>