View Single Post
2007-02-20, 02:30 AM   #5
casaubon
Moderator
 
casaubon's Avatar
 
Registered: Sep 2001
My Mac: iMac 24" 3.06GHz
Posts: 2,395
온라인
Yellow Box의 죽음, 그리고 Cocoa

Cocoa and the Death of Yellow Box and Rhapsody

Monday, February 19, 2007

넥스트로부터 입수한 기술을 바탕으로, 애플은 오픈소스 소프트웨어를 활용하여 새로운 서버 사업을 빠르게 개발한다. 하지만 넥스트 기술을 그대로 사용할 수는 없었다. 크게 변화를 시켜 주어야 했다.

1996년에서 2000년 사이, OpenStep, 그리고 옐로박스(Yellow Box)에 대한 시장의 거부 때문에, 애플은 애플 자신을 위해 맥오에스텐을 재작업해야 했다. 선의 자바나 마이크로소프트의 .Net, 혹은 오픈소스 모노처럼 크로스 플랫폼으로 할 수가 없었다. 본 글은 옐로박스가 어떻게 전략적으로 죽어야 했는지를 밝힌다.

Two Failures Team Up
1996년 당시 애플은 Copland의 취소와 함께, 차세대 맥오에스로 기존 운영체제 구입 의도를 발표하였다. 애플은 마이크로소프트 윈도 NT를 짧게나마 검토해 보고, 쟝-루이 가세의 BeOS 인수 협상을 시작하였다.

그 다음, 애플은 넥스트와도 협상에 들어간다. 원래 애플은 넥스트의 운영체제 커널을 라이센스할 계획이었다. 하지만 넥스트는 운영체제로서의 NeXTSTEP 판매를 멈추고, 다른 개별 개발에 집중한 상태였다.

  • OpenStep: 여러가지 운영체제의 개발 프레임웍 사양
  • WebObjects: 웹 애플리케이션 개발용 개발 프레임웍
  • OPENSTEP Enterprise: 윈도 NT용 OpenStep 개발툴
  • OPENSTEP Solaris: 선 솔라리스 운영체제용 OpenStep 개발툴
  • OPENSTEP/Mach: PC용 NeXTSTEP, SPARC, HP PA-RISC용 OpenStep 버전

그러나 넥스트는 오픈스텝 채택에 어려움을 겪는다. 진보적인 운영체제가 있다 하더라도 고객이 없었던 것이다. 반면, 애플에게는 고객이 있었으나, 진보적인 운영체제가 없었다.

두 회사 간의 협상은 빠른 진척을 보여, 마흐 커널 라이센스에서 이제는 넥스트 인수로, OpenStep은 개발계획으로, OPENSTEP/Mach는 새로운 운영체제로 변모해갔다.

Rhapsody and the Yellow Box: 1997-1998
1997년 1월, 애플은 기존의 맥오에스 7.6에서 새로 인수한 넥스트 기반 운영체제로 재빠르게 사용자들을 이주시킬 계획이었다.

코드명, Rhapsody라 불린 새 운영체제는 기존의 OPENSTEP/Mach 4.0에 기반을 두고 있었지만, 컬러싱크나 퀵타임과 같은 애플 기술을 통합시킨 형태였다.

이 운영체제는 PowerPC 맥과 표준형 인텔 PC에서 모두 돌아갈 예정이었다. 단, 기존 맥 애플리케이션을 위한 블루박스는 파워맥 버전에만 실렸다. 랩소디의 OpenStep 환경은 옐로박스라는 이름으로 바뀌었다.


고도로 포팅이 손쉬운 OpenStep 프레임웍은 넥스트의 마술이다. 게다가 윈도 NT/95 사용자들에게도 팔 수 있는 개발툴이기도 했다. OpenStep/옐로박스용 애플리케이션이라면 마술처럼 크로스 플랫폼이 가능하다. 랩소디만이 아니라 윈도, 솔라리스 등, OpenStep이 포팅되는 모든 시스템에서 사용 가능하다는 의미다.

OpenStep 사양의 오픈소스 버전인 GNUStep도 리눅스용으로 개발된 것이다. 애플은 맥오에스용으로도 옐로박스를 호스팅할 계획을 짧게나마 세웠지만, 제대로 작동하지 않으리라 보고 빠르게 취소한다.


옐로박스 계획을 보면, OpenStep을 비웃던 세상이 각성하여, 넥스트 기술로 새로워진 맥을 칭송하고, 그에 따라 모든 소프트웨어를 아무데에서나 "잘 돌아가는" 옐로박스로 작성하는 시나리오였다.


Yellow Box Falls Apart
하지만 랩소디 계획이 진전될 수록, 문제점이 드러나게 된다.

  1. OPENSTEP은 어도비의 디스플레이 포스트스크립트 등, 라이센스하기에 매우 고가인 기술도 갖고 있었다.

    이 문제는 원래 OPENSTEP/Mach의 문제가 아니었다. 넥스트는 데스크톱용으로 795 달러, 개발툴 풀셋으로는 2790 달러에 오픈스텝을 판매했었다. 하지만 맥오에스는 대중시장용이었으며, 저가의 옐로박스 런타임도 계획중이었다. 그런 고가의 라이센스 비용을 낼 수는 없었다.

  2. 더 중요한 문제가 있었다. 써드파티들이 옐로박스 프레임웍으로의 이주를 거부한 것이다. 써드파티들은 기존 맥오에스도 네이티브로 돌릴 호환 환경과 함께, 옐로박스 대신 기존 맥오에스 API에 기반하는 코드 개발 지속을 요구하였다.

    맥오에스 블루박스 API가 Power PC와 68k 에뮬레이션에 묶여 있기 때문에, 랩소디 PC 버전에서는 돌릴 수 없거나, 쓸 만한 속도가 나오지 않을 터였다. 이 때문에 인텔용 랩소디는 취소되기에 이른다.

  3. 윈도 가격 패러독스때문에 윈도 경쟁품을 팔기란 불가능에 가까웠다. 써드파티 하드웨어 업체들이 랩소디를 OEM 선택사양으로 집어 넣어줄리 만무하였다. 마이크로소프트의 독점 정책은 DR-DOS와 OS/2, NeXTSTEP, BeOS, 리눅스를 사냥해왔다.

Cross Platform Rhapsody Falls Apart
그렇다고 해서 애플 서버 제품이 나오지 않지는 않았다. 애플은 수정시킨 넥스트 기술 서버 두 가지를 차례로 선보인다.

  • 1999년 맥 하드웨어용 랩소디인 맥오에스텐 서버
  • 1년 후, 넥스트스텝을 상당히 수정시킨 맥오에스텐

초기 랩소디 개발자버전을 받은 이들은 PC와 맥 하드웨어 양측에서 랩소디를 돌릴 수 있었지만, 실제로 나왔을 때는 써드파티 라이센스나 크로스 플랫폼 지원이 완전히 사라졌었다.

그 어떤 PC 하드웨어 업체들도 맥오에스텐 서버용으로 그럴듯한 라이센스비를 지불하려 하지 않았으며, 흥미 자체가 없었다. 애플은 여전히 언론에 의해 곧 망할 회사라는 이미지를 안게 되었고, 모두의 관심은 마이크로소프트의 차세대 NT인 윈도 2000에 쏠려 있었다.

Mac OS X Server 1.0: 1999
1999년, 랩소디는 맥-전용 Power PC 버전으로 나오게 된다. 원래는 OPENSTEP/Mach 5.0이고, Mac OS X Server 1.0이라 불리었다.

여전히 디스플레이 포스트스크립트를 사용했지만, 외양만은 맥오에스 8, 코플랜드와 유사했다.

클래식 맥 애플리케이션을 돌리기 위한 블루박스 환경도 포함되어 있었으며, 이 환경은 풀 버전의 맥오에스 8을 호스팅하는 가상머신이었다.

블루박스가 상당한 시스템 자원을 소모하긴 하였지만, 랩소디는 맥오에스 8 네이티브 설치본보다 맥 애플리케이션 대부분을 더 잘 돌렸다. 랩소디의 개선된 OS 기초덕분이었다. 가상 메모리 아키텍쳐가 더 나아진 면도 있었다.

새로운 맥오에스텐 서버가 나오자, 클래식 맥오에스에 기반을 둔 애플셰어는 그 수명을 다하였다. 맥오에스텐 서버는 원격으로 네트워크 이미지 부팅을 지원하는 NetBoot도 선보였다. 아이맥이 나온 이후에 나온 맥은 네트워크 컴퓨터로 부팅을 할 수 있었다.

Mac OS X Leaves Rhapsody Behind
2년 후, 애플은 디스플레이 포스트스크립트가 없는 맥오에스텐 10.0을 선보이게 된다. 이 맥오에스텐은 상당한 재작성이 이뤄진 상태였다.


기존 클래식 맥 API는 Carbon으로 깔끔해지고, 옐로박스는 코코아(Cocoa)로 급격히 변모하였다.

블루박스는 클래식이라는 이름을 달았지만, 기존의 맥용 애플리케이션도 카본을 사용하여 업데이트시키면 네이티브로 돌릴 수 있었다. 즉, 카본을 사용하면, 새 운영체제의 거의 모든 기능을 제대로 활용할 수 있었다.

완전히 다른 윈도서버를 추가시키는 대신, 옐로박스에는 근본적인 변화가 너무나 많아졌다. 이에 따라 OpenStep 환경 사양에 기반한 옐로박스의 크로스 플랫폼 환경은 중단된다.

기존의 OpenStep 애플리케이션도 맥오에스텐으로 돌리려면 상당한 재작성이 필요해졌고, 맥오에스텐용 애플리케이션 또한 OpenStep 호환 환경에서는 돌아갈 수 없게 되었다.

The Eternal Death of Yellow Box
OpenStep, 그리고 옐로박스가 모두 실패하자, 애플이 크로스 플랫폼 애플리케이션 개발용으로서 옐로박스 전략을 다시 선보일지는 극히 불투명해졌다.

선의 자바 가상머신 전략도 비슷한 이유로 실패하고, 마이크로소프트 자신도 .NET을 고유의 가상머신으로 선보이는 데에 어려움을 겪고 있다. 기존 Win32 개발에 비해 .NET이 분명히 더 이득이지만, 마이크로소프트 자신도 .NET의 사용에 느린 행보를 보이고 있을 정도다.

옐로박스가 왜 다시 나올 수는 없을까? 다른 사례를 보면 그 이유를 알 만하다.

  • 원래 넥스트는 자사 기술의 채택도를 높이기 위해 OpenStep 사양을 발표했었다. 하지만 통합형 제품으로서 판매에 실패하고, 써드파티용으로도 실패한 다음, OpenStep은 넥스트 플랫폼 소비자를 찾기 위한 최후의 한 방이었다.
  • 선은 자사 버전의 OpenStep과 유사한 개발 환경인 자바를 소개하였으며, 이 자바 또한 크로스 플랫폼 애플리케이션 개발을 목표로 하고 있었다. 처음에 세상은 크로스 플랫폼 개발에 열광하였지만, 가상머신에는 냉담했다. 느리고, 불완전하며, 네이티브가 훨씬 더 잘 작동했기 때문이다.
  • 마이크로소프트는 .NET과 CLR VM, 그리고 자바와 유사한 여러가지 "#" 바이트코드 언어로 선 자바를 죽이려들었다. 그러면서 자바-스타일의 개발을 윈도와 묶으려 하였다.

    .NET은 한편 기존 Win32 개발환경을 교체하려는 목표도 갖고 있었다. 애플의 클래식 맥 API로부터 코코아 이주와 비견할 만한 것이 바로 Win32에서 .NET 매니지드 코드로의 이주이다. 하지만 비스타도 .NET을 하나의 선택사양으로만 제공할 뿐이다.

    이는 랩소디의 문제와 유사하다. 마이크로소프트는 개발자들을 롱혼의 WinFX로 이주시키려 했지만, 개발자들이 이미 알고 있는 툴 사용을 고집함으로써 계획을 철회한다.
  • 오픈소스 진영에서 .NET 환경을 MonoDotGNU 프로젝트로 만드려고 노력하는 중이다. 마이크로소프트 .NET을 OpenStep이나 자바처럼 자리매김하려는 것이다.



Apple Runs With Cocoa
시장의 냉담한 반응을 계속 받자, 애플로서도 크로스 플랫폼 애플리케이션 개발툴 제공에 흥미를 잃게 된다. 애플로서는 기회도, 동기도 부여가 안 되었다.

애플은 맥 하드웨어를 팔게 할 만한 소프트웨어 제공을 원하지, 자바나 .NET과 같은 크로스 플랫폼 개발을 갖고 싶어하지 않았다. 더구나 .NET도 나온 마당에, 10년도 더 된 옐로박스를 이미 번잡한 시장에 밀어 넣기가 매우 어려워진 상황이었다.

게다가 별 소득 없이 자바 지원을 쫓아오던 애플은 자바나 .NET 지원에 대한 관심을 잃었다. 모노와 같은 노력에 다시 애플이 참가할 가능성은 매우 낮다.

그 대신 애플은 남의 기술이 아닌, 고유의 기술에 집중한다. 코코아와 웹오브젝트(웹용 코코아라 할 수 있다) 등, 넥스트에서 나온 주요 기술을 활용한 것이다.

  • 온라인 애플스토어, 교육용과 사무용, 여러가지 지역용 등으로 나뉜다.
  • 여러 지역용 아이튠스 스토어와 교육기관용 iTunes U
  • 맥오에스텐에 번들된 애플리케이션과 iLife, Pro App 패키지.
  • 코코아 기술을 채택한 iPhone

위 사례를 보시라. 애플은 써드파티에 대한 의존도를 줄일 뿐만 아니라, 써드파티의 구색을 일부러 맞춰주지도 않는다. 그 대신 자기 제품을 만들기 위해 자기 기술을 사용한다.

빠른 애플리케이션 개발에 있어서 애플의 놀라운 성공이 이제는 무료 개발툴들 덕분이기는 하지만, 외부 개발자들의 애플 기술 채택은 느리다. 애플이 만약 써드파티에게 가서 그 기술을 채택하느라 기다렸더라면, 오래 전에 쓰러졌을 것이다.

자기 고유의 기술을 최대한 활용하는 것, 이것 덕분에 애플은 독특하고 차별화된 제품으로 앞서나갈 수 있었다. 자기 툴을 쓰면 그만큼 경쟁사보다 더 빠르게 신제품을 개발할 수 있다.

코코아가 외양의 인터페이스를 빠르게 개발시켜 주기도 하지만, 애플은 오픈소스를 활용하여 내부 엔진의 힘도 늘려왔다. 다음 기사는 코코아와 오픈소스의 결합이 어떤 서버용 제품을 빠르게 만들어줄지 알아보겠다.: Open Source in Apple’s Server Efforts


What do you think? I really like to hear from readers. Leave a comment or email me with your ideas.

Cocoa and the Death of Yellow Box and Rhapsody
__________________
  Reply With Quote