본문 바로가기

블로그

LG CNS 기술블로그 DX Lounge에서 최신 IT 소식을 만나보세요!

IT Trend

마이크로소프트의 변화, 오픈소스 기술을 내놓다!

2017.08.25

10년 전만 해도 마이크로소프트(MS)는 오픈소스 기술과 가장 어울리지 않는 기업으로 꼽혔습니다. 오히려, 오픈소스 기술 방향과는 정반대인 폐쇄적인 기술을 만들기로 유명했죠. 혹여나 오픈소스를 도입하는 정부가 있으면, 마이크로소프트의 CEO가 직접 정부 관계자를 설득하고 가격을 대폭 할인하면서, 오픈소스 확산에 걸림돌이 되기도 했습니다.

l 마이크로소프트와 오픈소스(출처: https://opensource.microsoft.com/)

이러한 마이크로소프트의 기조는 사티아 나델라가 마이크로소프트의 CEO로 취임한 이후 급격하게 변화했습니다. 심지어, 윈도우의 대표 경쟁 오픈소스 기술인 리눅스를 사랑한다는 취지의 발언을 적극적으로 하기도 했죠. 왜 마이크로소프트는 갑자기 오픈소스 기술을 내놓는 걸까요? 그리고 어떤 오픈소스 기술을 공개했을까요?

리눅스는 암이다 VS 리눅스 사랑해요

마이크로소프트와 오픈소스 기술 간의 적대적 관계는 2000년대 초반부터 시작합니다. 당시 마이크로소프트의 2대 CEO였던 스티브 발머가 한 인터뷰에서 “오픈소스는 지적재산권에 붙은 암적인 존재”라고 표현한 것이 문제였습니다. 또한, 정부가 오픈소스 기술을 사용하는 것에 대해서도 강하게 비난했습니다. 그 이유로 “정부는 국민 모두를 위한 지출을 해야 하는데, 오픈소스 기술은 일반 기업이 이용할 수 없다”라고 덧붙였습니다.

당시는 물론, 지금도 이 말은 다소 앞뒤가 안 맞는 부분이 있습니다. 오픈소스 기술이 있는 상태지만 현재도 수많은 상업 기술이 지적재산권을 보호받으며 건재하고, 일반 기업도 오픈소스를 자유롭게 사용할 수 있기 때문이죠. 스티브 발머 CEO의 영향 때문인지 마이크로소프트는 오픈소스 기술을 포함한 외부 제품은 마이크로소프트의 기술과 호환되지 않도록 막아두기도 했습니다.

17년이 지난 지금은 어떨까요? 스티브 발머는 CEO 자리에서 물러나고 2014년 사티아 나델라가 그 자리에 오르며 변화가 있었습니다. 사티아 나델라는 마이크로소프트에서 클라우드, 엔터프라이즈, 개발자 도구 등을 담당했었다고 하는데요. 공교롭게 해당 분야는 오픈소스 기술이 아주 활발하게 활용되고 있었습니다.

사티아 나델라는 취임 직후부터 오픈소스 기술과 마이크로소프트 기술 내에서 잘 활용될 수 있도록 호환성을 적극 높였습니다. 그것이 마이크로소프트의 경쟁 제품이어도 말이죠.

그 결과, 마이크로소프트 내부에 오픈소스 전담 부서가 생기고, 오픈소스 기술을 이용하기 원하는 고객을 위한 파트너 프로그램도 제공하기 시작했습니다. 물론, 이런 전략이 고객들의 요구로 인한 변화라고도 볼 수 있습니다. 최근 인프라 및 개발 도구 분야에서는 오픈소스 기술을 이용하는 경우가 빈번해졌기 때문이죠.

이로 인해 마이크로소프트가 관련 생태계에 몸담기 위해서는 오픈소스 기술과 공생해야만 했는데요. 마이크로소프트는 2016년 기준 깃허브가 발표한 가장 많은 기여자를 모은 기업 1위에 오르기도 했습니다.

l 깃허브에서 가장 많은 기여자를 모은 기업 순위(출처: https://octoverse.github.com/)

마이크로소프트의 인기 오픈소스 기술들

마이크로소프트가 공개한 오픈소스 기술은 현재 250여 개 정도입니다. 기술은 크게 웹기술, 닷넷기술, 머신러닝 기술로 나눌 수 있습니다. 보통 오픈소스 인기도는 깃허브의 ‘스타’나 ‘포크’ 수로 가늠합니다. 스타는 즐겨찾기, 포크는 복사 기능을 하기 때문입니다. 마이크로소프트의 오픈소스 기술에서 ‘스타’ 수가 높은 프로젝트는 비주얼스튜디오 코드, 타입스크립트, RxJS, 닷넷 코어 라이브러리, CNTK가 있습니다.

MS 오픈소스 프로젝트

비주얼스튜디오 코드: https://github.com/Microsoft/vscode
타입스크립트: https://github.com/Microsoft/TypeScript
RxJS: https://github.com/Reactive-Extensions/RxJS
닷넷 코어 라이브러리: https://github.com/dotnet/corefx
CNTK: https://github.com/Microsoft/CNTK

비주얼 스튜디오 코드는 코드 에디터로, 소스코드를 작성하고 빌드 및 디버깅하게 도와줍니다. 마이크로소프트의 대표 개발 도구인 비주얼 스튜디오와 동일한 제품은 아니지만, 마이크로소프트 개발 도구 과정을 보고 싶은 사람에게 큰 인기를 끌고 있습니다. 타입스크립트는 자바스크립트에 정적 타입 개념을 덧붙여 확장한 언어입니다. 플랫폼에 상관없이 배포할 수 있고, 자바스크립트로 컴파일되면서 많은 개발자에게 관심을 받고 있습니다.

RxJS는 Rx는 비동기 데이터 스트림을 처리하는 API를 제공하는 라이브러리입니다. 동시에 자바스크립트에 알맞은 리액티브 프로그래밍을 할 수 있도록 도와줍니다. 닷넷 코어 라이브러리는 마이크로소프트가 초반에 가장 내세우던 오픈소스 기술입니다.

아예 닷넷 재단을 따로 만들어 관련 기술을 단계적으로 공개하고, 마이크로소프트의 기술을 외부에 알리고 오픈소스 문화를 확산할 수 있도록 기여하고 있죠. CNTK는 딥러닝 툴킷입니다. 딥러닝 트레이닝을 처음 시작할 때 이 기술을 활용할 수 있습니다.

l 비쥬얼 스튜디오 코드(출처: https://github.com/Microsoft/vscode MS)

포크수로 보면 윈도우 유니버셜 샘플, 비쥬얼스튜디오 코드, 애저 템플릿, ASP닷넷 문서, 타입스크립트가 가장 인기가 높았습니다.

윈도우 유니버셜 샘플: https://github.com/Microsoft/Windows-universal-samples
비쥬얼스튜디오 코드: https://github.com/Microsoft/vscode
애저 템플릿: https://github.com/Azure/azure-quickstart-templates
ASP닷넷 문서: https://github.com/aspnet/Docs
타입스크립트: https://github.com/Microsoft/TypeScript

유니버셜 샘플은 윈도우 10 개발자들이 API를 어떻게 사용해야 하는지 보여주는 코드를 담고 있습니다. 애저는 마이크로소프트의 클라우드 제품인데요. 애저 템플릿은 처음 마이크로소프트 클라우드 제품을 사용하는 사람을 위한 지침서입니다. ASP닷넷 문서에는 ASP닷넷 핵심 기술을 상세히 소개하고 있습니다. 자세한 기술은 아래 링크에서 볼 수 있습니다.

MS 오픈소스 기술 보기
https://opensource.microsoft.com/

구글이나 페이스북, 넷플릭스 등이 내부 개발자들이 사용하는 오픈소스를 공개하는 것에 반해 마이크로소프트는 자체 제품의 소스코드를 공개하는 경향이 높습니다. 하지만 대형 IT 기업이 오픈소스 문화에 적극 합류하려는 모습이 오픈소스 생태계에 많은 영향을 주고 있는 것도 사실입니다. 또한, 마이크로소프트는 다양한 오픈소스 커뮤니티에 금전적인 지원을 해주며 도움을 주고 있습니다.

오늘은 마이크로소프트의 오픈소스 기술 변화에 대해 알아보았습니다. 10년이라는 길지 않은 시간에 만들어낸 한 기업의 변화가 놀랍기만 합니다. 함께 성장하는 오픈소스가 만들어 낼 10년 뒤의 모습은 어떨지 더욱 기대됩니다.

글 | 이지현 | 블로터 기자

[관련 글 보기]

  • 미국은 왜 오픈소스 정부를 꿈꾸는가?
  • 3대 오픈소스 IDE, 그들은 왜 오픈소스가 되었나?
  • 오픈소스 개발자의 단짝 친구 깃(Git) 그리고 깃허브(GitHub)
  • 게임 속에 깊게 파고든 오픈소스 기술
  • ‘페이스북은 필요한 기술을 직접 만든다’ 오픈소스로!
  • 왜 마이크로소프트는 오픈소스 기술을 내놓았을까?

챗봇과 대화를 할 수 있어요