오픈 Microsoft를 향한 노력들...[20080401]

요즘은 Microsoft가 오픈되고 있는 여러가지 사건들에 대한 이야기를 자주 접하게 됩니다. 그 배경에는 일련의 사건들이 엮여 있기도 하고, 또한 현 소프트웨어계의 시류에 맞추려는 노력 또한 반영되어있기도 합니다. 이런 시류에 맞추는 것이 기업의 장기적인 이익에 결부되어있는 것도 당연한 일일 것이구요. 이에 대해서 여러가지 의견차가 있지만, 일단 Microsoft에서는 공개적인 약속(OSP, Open Specification Promise)를 하였습니다. 법적으로 구속력이 약한 약속이라고 여러 법조계 분석가들이 이야기를 하지만, 여기에 속한 다양한 공개정보에 대해서 하나라도 약속을 어기게 되면 여기에 속해 있는 모든 약속에 엮이거나 관심을 둔 엄청나게 커다란 커뮤니티 - 소위 Microsoft 진영이라고 불리는 영역 뿐만 아니라 그 이외에 모든 잠재 고객과 고객 – 에 큰 파장을 불러일으킬 수 있는 상황임에는 틀림이 없기에, 단순히 차후에 안지키겠다고 하면 된다는 식의 반대는 설득력이 적어 보입니다. 이에 준하여 Microsoft가 어떤 노력을 하고 있는지 조금 살펴보는 Note를 한번 적어봅니다.

다양한 배경

일반적으로 기업의 규모와 영향력이 커지면서 다양한 시련(?)을 겪게 되는데, 그 중에서 가장 큰 것중 하나가 반독점등의 시장 질서에 관한 부분이겠습니다. 다양한 국가에서 다양한 형태로 조사를 받고 벌금을 물고 법적인 이해관계가 물리고 하게 되는데, 이에 대한 자구책이자 어떤 때에는 시정 조항으로 제시되는 것이 바로 “오픈”이라는 방책입니다.

또한가지 상황이 오픈소스라는 이데올로기 성격의 마인드셋입니다. 기업이기에 모든 것이 공공재로 열어버리는 딜레마를 만들리는 만무하지만, 오픈소스 진영이라고 하는 영역과의 수년전의 대립관계가 정답이 아니라는 것을 기업들은 이미 깨지고 깨진 끝에 깨닫기 시작했고, 지금은 그 깨달은 바를 통하여 그 두 곡선의 최적의 분기점에 가까운 비즈니스 모델로 이전을 하고 있는 시점입니다.

이런 오픈소스 마인드셋이 영향을 미친 것은 비단 기업이라는 커다란 엔티티만이 아니라 그 내부에 속한 개인들에게도 마찬가지입니다. 이 마인드셋은 냉전시대의 미-러 관계와 같은 것은 당연히 아니며, 외부의 오픈소스 전문가들이라고 Microsoft에서 일하지 말라는 배타주의적인 것도 아닙니다. 일부 극단에 속한 마인드셋은 회사 자체를 의魔화하기도 하여 “Don’t be evil”이라는 교훈을 의역하지 않고 곧이 곧대로 사용할 수도 있겠지만, 일반적으로는 그런 극단이 보편적인 것은 아니겠죠. 회사가 개인의 이데올로기를 배척하는 것은 옳지 않은 일이기에, 쉽게 이야기해서 이 마인드셋은 Microsoft 내부에도 얼마든지 영향을 미치고 리크루트되고 스며들어 이미 떼어낼 수 없는 문화적인 성격이 되어버린 것이기도 합니다.

기술적인 상황도 있습니다. 세상의 다양한 기술들이 사실상 공존하면서 생기게 되는 것이 기술적자생존 현상입니다. 예를 들어 Java 진영에서 개발한 기술이 Microsoft에서 구현되어 사용되거나 그 반대가 되는 경우가 있겠죠. 또한, 자생한 표준화 기구의 영향력이 제품의 방향을 결정하는 경우도 많습니다. 기술적으로 얼마나 우월하냐는 것보다는 (자연선택이 아니라) 시장선택을 받았으냐는 요소에 의해서 발전을 해나간다는 것인데, 근래의 시류는 이런 현상이 유달리 돋보이는 때이기도 합니다. “오픈"이라는 요소는 이런 현상에 적응하기에 더 쉽도록 만들어주는 큰 요소라는 것이 설득력이 생긴 것이겠구요.

Microsoft에서 잘하는 키워드로 “커뮤니티”, “생태계(ecosystem)”가 있는데, 여기에도 몇가지 상황이 있습니다. 이미 커뮤니티/생태계를 통한 “오픈”은 해온지 오래되었고, 예를 들어 다양한 influencer에게 내부 자료들을 공개하는 등의 방법을 통하여 시너지를 보여주고 있죠. 또한 이전의 방법이 내편을 돈독히 하는 방법이었다면, 이제는 내편이 아니더라도 모두가 내편이 될 수 있는 잠재적인 내편임을 가정하는 방법이 커뮤니티/생태계를 만드는 더 “장기적으로” 합리적인 모습이기에 “오픈”이 한번 더 설득력을 가집니다.

하나 언급하고 넘어갈 것이 OOXML의 ISO 표준 인증의 노력에 대한 것이겠습니다. “오픈”을 위해서 OOXML을 표준화하려는 것이냐, 아니면 OOXML 표준화(외의 여러가지)를 위해서 “오픈”을 표방하는 것이냐. 이는 관점의 차이라고 할 수도 있겠습니다. 하나의 비즈니스 모델로 생각한다면 결국 기업의 최종 목표인 실적을 향한 움직임일테고, 시류로 생각한다면 시류에 뒤쳐지지 않으려는 노력일 것일테죠. 하지만, 이를 갑자기 역행하여 지금까지의 노력들을 물거품으로 만들만한 메리트는 어디에도 없다고 생각됩니다.

오픈

사실 이 보편적인 의미로 사용된 “오픈”이라는 말은 “오픈소스”의 오픈과는 조금 다른 문맥일 것입니다만, 어렵게 여러가지를 정의하는 것보다는 지금까지 보여진 여러가지 예를 나열하는 것으로 이해를 도모해보는 것이 좋을 것 같습니다:

  • 제품들의 Interoperability에 대한 전략 공개 – 단순한 전략 공개가 아니라 현재 이 전략의 다양한 세세 항목들이 실행되고 있습니다. 이 전략에는 제품/커뮤니티/접근/표준의 4가지 기조가 있습니다.
    • 문서화되지 않은(undocumented) 모든 Windows API들의 문서화 – 시정명령에 의하여 API들을 문서화한 이야기는 익히 들어서 아시는 내용이리라 생각됩니다. 이 시정명령 이외에도 메이져 제품들의 API들을 모두 문서화하게 됩니다.
    • 제품들의 내부 프로토콜 명세등을 공개(Open Protocal Specifications) – 공개된 프로토콜 문서 중에는 특허와 결부된 내용들이 있기에 이를 명시하게 되며, 상용 목적으로 사용될 경우 이를 적절히 협상할 수 있는 프로그램이 제공됩니다. 또한 오픈소스 제품에게는 무료로 라이센싱할 수 있게 됩니다. 이전의 닫힌 형태와는 매우 다른 모양이겠습니다.
    • OSP(Open Specification Promise) - OSP에 해당하는 리소스의 사용에 관한 침해를 제기하지 않겠다는 약속입니다. 이 약속을 적용한 다양한 표준들이 지속적으로 추가되고 있으며, 최근에는 WPF와 WF에서 사용하는 Xaml 명세의 Draft 버젼이 등록되었습니다. 여기에 현재(2008/04/01) 포함된 기술명세는 다음과 같습니다:
      • 웹서비스(Web Services) 표준
      • 가상화 기술에 사용되는 VHD 포맷
      • 몇몇 보안관련 RFC들
      • OOXML 표준
      • Office(워드, 엑셀, 파워포인트)의 바이너리 포맷들과 관련 포맷들
      • 그래픽 관련 포맷들
      • 로보틱스 관련 포맷과 FeedSync
    • Open XML SDK를 제공 - OOXML의 표준화 노력 이외에 이를 사용할 수 있는 API들을 SDK 형태로 제공하여 다운로드하거나 온라인으로 볼 수 있습니다. 현재는 기술 프리뷰형태이며 1.0 버젼이 5월께에 출시될 예정입니다.
    • Office 제품들은 앞으로 OOXML이외의 포맷으로 export할 수 있는 기능이 제공되며, 또한 새로운 포맷 지원을 원활히 하기 위한 API가 제공되어 플러그인할 수 있게 됩니다.
  • 제휴를 통한 오픈소스 진영과의 공조 – 가장 대표적인 예가 Novell이겠습니다. 여러가지 제품들의 개발 단계 명세들이 제공되어 리눅스 버젼의 제품으로 구현되고 있습니다. Mono가 그 대표적인 구현입니다.
  • 오픈소스 랩(OSS Lab)Port25라는 오픈소스 공조 커뮤니티 사이트 – 다양한 오픈소스 제품들을 대상으로한 실험들과 상호 협력을 위한 일들이 투자되고 있습니다. 또한 Open Source at Microsoft 페이지에서 다양한 프로그램들과 커뮤니티 파트너들을 보실 수 있습니다.
  • Shared Source Initiative
    • Shared Source 프로그램을 통하여 Windows/Office 자체의 소스코드를 무료로 라이센싱하고 있습니다.
    • CodePlex 오픈과 활용 - CodePlex는 소스포지와 같이 무료로 프로젝트를 호스팅하여 진행할 수 있도록 만든 사이트로 이를 통하여 Microsoft의 제품들의 다양한 소스코드 공개와 오픈 프로젝트 지원도 하고 있습니다. 최근 ASP.NET MVC 프레임웍의 소스코드 공개도 CodePlex를 통해서 이뤄졌습니다.
    • .NET Framework과 관련된 소스코드의 공개 – 소스코드를 패키지화하여 공개한 것이 아니라 MS-RSL 라이센스(참조 라이센스)를 통하여 디버깅시의 소스서버를 통한 공개이기는 하지만, 이를 통하여 사용자들은 다양한 편의를 도모할 수 있게 됩니다.
  • IE8의 기본 모드로 표준 지원 모드 설정 – 기존의 입장을 변경하여 웹표준모드를 기본으로 하는 파격(?)적인 결정을 하였습니다. 이로 인하여 기존의 IE7 호환을 위해서는 호환모드로 변경해야햐는 번거로움이 생기지만, 대신 웹표준이 활성화되는 계단의 한계단을 건너뛴 역할을 할 수도 있게 되겠죠.
  • Windows Live의 지속적인 오픈 API화와 제휴(Windows Live Dev) – 다양한 서비스의 오픈 API들을 제공함과 동시에 이를 사용한 참조 구현 응용프로그램들을 지속적으로 만들어 제공하고 있습니다. 최근 Contacts API와 FaceBook등의 회사와의 제휴가 발표되었었죠.
  • IIS의 FastCGI 개발 제휴 -  IIS상의 PHP 호스팅 개선과, PHP 커뮤니티와의 소통 그리고 개발 내용의 공유등 커뮤니티에 많은 영향을 제공합니다.
  • DLR(Dynamic Language Runtime), IronPython등의 소스코드 공개 - IronPython은 .NET Framework상에서의 Python 구현은 실용성이 없다는 관념을 깬 프로젝트로, 이를 개발한 Jim Hugunin을 Microsoft에서 영입하여 긍정적인 평가를 받고 있습니다. 또한, .NET Framework상의 Ruby 구현을 하던 John Lam의 영입도 비슷한 맥락입니다. 또한 이들 동적언어의 쉬운 개발을 위하여 DLR을 개발하고 있으며 이 또한 코드를 볼 수 있습니다.
  • 오픈을 향한 내부 엔지니어링의 변화 – 엄청나게 많은 변화들이 있었지만, 가장 사용자에게 가까운 변화가 개발 중에 CTP(Community Technology Preview, 커뮤니티 기술 프리뷰)라는 것이나 일일빌드등을 술렁술렁 내놓는 것이라고 할 수 있겠습니다.
  • DreamSpark 프로그램 – 전세계 학생들에게 Microsoft 제품들을 무료로 사용할 수 있는 기회를 주는 빌게이츠의 역작(?)입니다.^^

이외에도 많은 소식들이 있었고, 앞으로도 발표될 예정입니다. 위의 배경에서 설명한 바대로 회사를 위하여 하는 활동임에는 틀림이 없습니다만, 이런 행위의 성격이 이전과는 다르다는 것을 보실 수 있을 것이라 생각됩니다.

맺기

문서를 만들고 명세를 만들고 또 표준을 만드시는 분들, 그리고 이를 위해서 협력을 하는 분들은 이렇게 짧은 시간에 이런 품질로 내놓는 투자가 얼마나 큰 것인지를 알고 계시리라 생각됩니다. 위에는 한줄로 적었지만, 사실은 엄청난 MM(Man-Month)가 필요한 작업이고, 개발 자체 못지 않은 작업이며, 또한 다른 부분의 희생을 요하는 작업입니다. 이런 투자를 단순히 Evil Empire를 넓히고자 하는 수단으로만 보는 색안경은 벗어버리시고, 되려 이런 상황을 이용하여 더 건설적으로 소프트웨어 계에 영향이 미쳤으면 좋겠다는 생각을 해봅니다. 개발자에게는 더 많은 문서/코드등은 좋은 소식이며, 파트너에게 있어서 자유도가 더 높아지는 것은 그만큼 생태계가 건강해질 수 있는 여지이며, 경쟁자에게 있어서는 선의의 경쟁을 위한 협력의 기회이자 방법이 될 수 있고, 일반 사용자에게는 더 좋은 제품에 대한 가능성이라고 할 수 있겠습니다. 물론 Microsoft와 같은 회사가 (긍정적이든 부정적이든) 유례 없지만, 한 회사내의 이런 대규모의 “오픈” 흐름 또한 유례가 없지 않을까요?