과거 오픈소스 친화 기업이라고 하면, 개발자들은 보통 구글을 먼저 떠올렸습니다. 하지만 최근 구글 못지않게 오픈소스 기술에 투자하는 기업이 나타났습니다. 바로 페이스북입니다. 페이스북은 2013년부터 본격적으로 내부 오픈소스 기술을 적극적으로 공개하고, 이와 관련된 커뮤니티를 키우고 있습니다.
처음에는 웹이나 모바일 관련된 기술이 많았지만, 최근에는 네트워크, 카메라, 인프라 장비에서 머신러닝 기술까지, 그 종류도 다채로워졌습니다. 여기에는 기술 공유 가치 외에도 기술 주도권을 흔드는 프로젝트도 있어 화제를 모으기도 했는데요. 오늘은 페이스북의 오픈소스 정책에 대해 알아보겠습니다.
l 페이스북 오픈소스
(출처 : https://code.facebook.com/posts/1058188987642144/facebook-open-source-2016-year-in-review/)
첫 번째로 사회공헌이 있습니다. 일반적으로 웹 서비스를 만들려면 오픈소스 기술을 반드시 사용하게 됩니다. 페이스북도 마찬가지였죠. 페이스북 초기 개발자들은 오픈소스 기술이던 리눅스, 아파치 서버, MySQL, PHP 등을 활용해 페이스북 기술을 만들었습니다. 제임스 피어스는 2015년 벤처비트 인터뷰를 통해 “페이스북은 항상 오픈소스 기술로 얻은 혜택을 다시 돌려줘야 한다는 도덕적 의무를 지녀왔다”라고 밝혔습니다.
두 번째 이유로는 혁신을 들었습니다. 페이스북 내부에서는 동종의 산업군이 함께 성장할 때 페이스북이 훨씬 더 성공할 수 있다고 믿고 있습니다. 혼자서 성장해버리면 페이스북이 가진 문제는 페이스북만 경험하고 스스로 해결해야겠죠. 하지만 비슷한 규모나 성과를 내는 기업들이 많다면 그들과 함께 문제를 공유하고 해결방법도 훨씬 더 다양해질 수 있습니다.
페이스북은 이러한 이유로 내부에 좋은 기술을 외부에 공유하면서 산업이 함께 성장하고 이로 인해 혁신을 도모할 수 있다고 믿고 있습니다. 예를 들어, 페이스북이 공개한 오픈소스 기술 중에 ‘리액트(React)’라는 자바스크립트 라이브러리가 있습니다. 이 기술은 원래 인스타그램과 페이스북 웹 페이지에서 활용되고 있었죠.
l React 자바스크립트 라이브러리(출처: https://facebook.github.io/react/)
l 제임스 피어스 페이스북 오픈소스 총괄
(출처: https://www.youtube.com/watch?v=vBbDAk5WYEo)
이러한 문화가 퍼지면 더 좋은 경력 개발자, 신입 개발자들이 지원이 많아질 테니 인재를 확보하는데 이점을 가져갈 수 있습니다. 실제로 제임스 피어스는 이런 이야기도 했습니다.
“페이스북의 오픈소스 활동은 이타주의로 만들어진 것만은 아니다. 그 뒤에는 비즈니스적인 관점이 녹아있다. (It’s not all altruism, there’s solid business sense behind this)”
l 2016년 페이스북 인기 오픈소스 프로젝트들 사진
(출처: https://code.facebook.com/posts/1058188987642144/facebook-open-source-2016-year-in-review/)
페이스북 오픈소스 기술에서 가장 많은 팔로우 수를 가진 것은 '리액트'와 '리액트 네이티브'였습니다. 리액트는 사용자 인터페이스를 만들기 위한 자바스크립트 라이브러리 이고, 리액트 네이티브는 네이티브 모바일 앱을 만들기 위한 프레임워크입니다.
리액트 앱을 쉽게 따라서 만들 수 있는 크리에이트 리액트 앱(Create React App) 역시 높은 관심을 받았죠. 여기에 VR과 관련된 ‘리액트 VR’이란 기술도 2017년 출시됐습니다. 또한, 아래와 같은 개발 도구, PHP 관련 언어, 모바일 기술도 크게 관심을 받았습니다.
[인기 개발도구, PHP 관련 언어, 모바일 기술]
● 인퍼(Infer): 페이스북 모바일 앱에서 사용하고 있는 정적분석기(static analyzer). 널 포인터 예외처리, 메모리 누수같은 충돌이나 성능저하를 야기하는 오류들을 잡아준다. https://code.facebook.com/projects/449931035189038/infer/
● HHVM: 오픈소스 가상머신으로 PHP로 만든 애플리케이션 성능을 높일 때 사용된다. https://code.facebook.com/projects/564433143613123/hhvm/
● Flux(플럭스): 유저 인터페이스를 제작하기 위한 애플리케이션 아키텍처. https://code.facebook.com/projects/1572329279676947/flux/
● Pop(팝): iOS, OS X, tvOS 앱 등을 개발할 때 활용하는 애니메이션 엔진. 페이스북이 만든 모바일 앱 '페이퍼'를 만들 때 다양한 효과를 주려고 개발했다. https://github.com/facebook/pop
● GraphQL(그래프QL): 쿼리 언어이자 엔진. 여러 백엔드 서비스에서 활용할 수 있으며, 깃허브, 아폴로(Apollo)라는 기업도 그래프QL을 이용하고 있다고 한다. https://code.facebook.com/projects/250682645321805/graphql/
● presto(프레스토): 오픈소스 분산 SQL 쿼리 엔진. 페타데이터 규모의 쿼리까지 빠르게 분석해준다. 아마존, 테라데이타(Teradata) 등에서도 이용하고 있다. https://code.facebook.com/projects/552007124892407/presto/
● Nuclide(뉴클라이드): 웹과 모바일 개발을 위한 IDE. https://code.facebook.com/projects/1021334114569758/nuclide/
● Buck(벅): 빌드시스템으로 작고 재사용이 쉬운 모듈을 만들 수 있게 도와준다. https://code.facebook.com/projects/484285361686998/buck/
l 페이스북 오픈디자인 자료 (출처: http://facebook.design/ios10)
l 페이스북이 주도하는 OCP (출처: http://www.opencompute.org/)
● 페이스북 오픈 디자인 자료 전체보기
하드웨어는 더욱 독특합니다. 페이스북은 인터넷을 기반으로 하기 때문에, 네트워크나 데이터센터환경에 따라 서비스 질이 달라집니다. 이러한 가운데 페이스북은 자신이 필요한 장비와 하드웨어를 직접 만들겠다고 선언하기도 했습니다. 대표적인 것이 ‘오픈 컴퓨트 프로젝트(Open Compute Project, OCP, http://www.opencompute.org/)’입니다. OCP에선 여러 기업과 협업해 개방형 인프라 기술 및 네트워크 기술을 만들고 있습니다.
재미있는 사실은 많은 대형 기업들이 OCP를 긴장하면서 보고 있다는 점입니다. 서버, 네트워크 장비, 스토리지 등은 기술이 워낙 복잡하고, 개발 비용도 많이 들기 때문에 누구나 쉽게 만들 수 있는 기술은 아닙니다. 그동안은 시스코, IBM, HP, 통신사 등 대형 기업들이 주로 생태계를 이끌고, 기술 표준을 만들어냈죠. 따라서 이러한 기술은 외부에 공개되지 않고, 고객들은 대형 기업들이 만들어주는 기술에 맞추어 서비스를 개발했습니다. 페이스북은 이러한 관행을 뒤엎고, 스스로 필요한 하드웨어를 직접 만드는 셈입니다.
기술력이 좋고, 자본도 많고, 다양한 인재를 가진 페이스북이라서 가능한 시도라고 볼 수 있겠죠. 만약 페이스북이 만드는 하드웨어가 만약 크게 성장한다면 기존 대형 기업들은 큰 타격을 입을 수 있습니다. 물론 아직 눈에 띄는 성과를 거둔 것은 아니고 굉장히 초기 단계입니다. 하지만 페이스북이 만든 기술이라는 점에서 여전히 기업들이 관심을 갖고 협업을 진행하고 있습니다.
이외에도 360도 카메라 시스템인 ‘서라운드360’나 페이스북 인공지능 연구소에서 활용했던 라이브러리 등도 오픈소스로 공개되고 있습니다.
전 세계의 수많은 개발자가 함께 만드는 오픈소스의 힘. 페이스북은 이 힘을 이용해 기술 주도권을 갖고 영향력을 발휘하고 있습니다. 동시에, 사회공헌과 혁신을 이뤄나가며 더 나은 프로젝트를 만들어가는 모습이 인상적인데요. 다음 시간에는 마이크로소프트의 오픈소스 활용을 소개해 드리도록 하겠습니다.
* 해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 LG CNS 블로그에 저작권이 있습니다.
* 해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.
'IT Insight' 카테고리의 다른 글
2017, IT와 금융의 융합 #6 빅데이터•인공지능 탑재한 ‘인슈어테크’ 탄생 (0) | 2017.07.27 |
---|---|
‘자동차의 진화’ 커넥티드카 기술은 어디까지 왔을까? (0) | 2017.07.24 |
UX는 왜 어려울 수 밖에 없을까? (0) | 2017.07.20 |
아이디어가 성공적인 비즈니스 모델이 되는 여정 (1) | 2017.07.19 |
인공지능의 발전, 그리고 인류의 미래는? (0) | 2017.07.18 |