자바를 얘기하기에 앞서 썬 마이크로시스템즈(Sun Microsystems)에 관해서 조금 알아 봅시다.
몇 달 전 "MBC 다큐멘터리 성공시대"에 재미교포 디자이너 한 분이 나온 적 있었습니다. 그 분 젊었을 적 일화를 드라마로 꾸민 내용 중에, 히피 두 명이 다짜고짜 찾아와서 '이런 저런 컴퓨터를 만드는데 당신이 케이스 디자인을 해주면 좋겠다.'는 일화가 나오는데요. 바로 그 히피 중 한 명이 바로 썬 마이크로시스템즈를 만든 스캇 맥닐리와 그 친구였습니다.
썬 마이크로시스템즈가 만든 워크스테이션(Workstation)은 경제성 있는 틈새시장(profitable niche)을 정확하게 현실화한 것이었습니다. 고가의 미니 컴퓨터(Mini Computer)와 저가의 PC 사이에, 강력하면서도 상대적으로 저렴한 컴퓨터를 요구하는 수요가 있음을 시장으로 연결시킨 것이죠.
이처럼 하드웨어 회사로 출발한 썬 마이크로시스템즈는 '엔지니어에게 컴퓨터를 파는 엔지니어 집단'으로 최초 자리매김합니다. 기업체 네트워크 관리자, 연구원, 교수, 프로그래머 등, 하이엔드 머신을 필요로하던 엔지니어에게 저렴하면서도 PC보다 훨씬 강력한 성능을 갖고 있는 워크스테이션을 판매했던 것입니다. 썬 마이크로시스템즈가 워크스테이션을 판매하기 시작했을 당시, 비슷한 시장을 독점하고 있던 회사가 하나 더 있었습니다. 아폴로라는 회사입니다. 아폴로는 철저하게 폐쇄적인 - 모든 것을 자기 회사 고유의 스펙으로 했던 것입니다 - 하드웨어와 소프트웨어를 묶어서 솔루션을 제공하고 있었던 것에 반해, 썬은 외부에서 쉽게 구할 수 있는 부품을 조합해서 저가의 하드웨어로 완성한 다음 공개된 유닉스 버전을 운영체계로 채택해서 판매하는 개방적인 방식을 택했습니다. 우여곡절은 있었지만, 결국 시장은 썬 마이크로시스템즈의 손을 들어줍니다. 오픈 스탠다드가 폐쇄적인 표준을 누른 것입니다. 망한 아폴로는 훗날 휴렛패커드의 워크스테이션 부문으로 흡수됩니다.
썬 마이크로시스템즈는 세 명의 인물이 주도해서 세워진 회사입니다. 현재 CEO를 맡고 있는 스캇 맥닐리. 그는 하버드를 졸업한 다음 스탠포드에서 MBA 과정을 마친 'operation 통'이었습니다. 스캇은 스포츠에 큰 소질과 취미를 갖고 있는 사람으로, 경쟁을 사랑하고 반드시 상대방을 꺾어야만 직성이 풀리는 사람이라 합니다. 그의 아버지가 아메리칸 모터스의 임원이었기 때문에 스캇은 대단히 유복한 환경에서, 어릴 적부터 제조업의 오퍼레이션이 어떻게 관리되는지 직접 보고 겪으며 성장합니다. 스캇은 늘 허름한 차림에 히피적인 분위기를 몰고 다니며 절대 부유한 티를 내지 않다다고 하구요, 지금도 소탈한 면모는 여전하다고 합니다.
그는 틈만 나면 마이크로소프트와 빌 게이츠를 '악의 제국'에 비유하며 마이크로소프트와 경쟁하고 있는 회사들의 대동 단결을 주장하기에 여념이 없습니다. 자신을 빌 게이츠의 대척점에 세우고자 하는 것이지요. 재미있는 것은 이처럼 철저하게 '엔지니어에 의한 엔지니어를 위한 회사'로 출발했던 썬 마이크로시스템즈를 이끌고 있는 스캇 맥닐리가 실상 가장 큰 관심을 갖고 있는 부분은 일반 소비자 시장이라는 사실입니다. 몇 년 전 애플사가 부도 위기에 처했을때 애플이 썬으로 넘어가는것 아니냐는 얘기가 나돈 것도 스캇 맥닐리가 일반 데스크탑 시장에 많은 관심을 갖고 있었기 때문입니다. 자바는 썬 마이크로시스템즈가 엔지니어나 컴퓨터 엘리트를 위한 회사에서 벗어나 최초로 일반인을 위한 컴퓨터 회사 이미지를 얻게 해줍니다.
두 번째 썬 마이크로시스템즈 창업의 주역은 유명한 Bill Joy입니다. 빌 죠이는 UC Berkeley를 졸업했고 널리 알려진 버클리 유닉스(BSD)를 만든 장본인입니다. Digital사의 VAX 미니컴퓨터 상에서 돌아가는 유닉스를 손을 대서 만든 것이 바로 버클리 유닉스입니다. 초창기 썬 워크스테이션에 깔려 있던 유닉스가 버클리 유닉스였고, 버클리 유닉스를 개선한 운영체계가 요즘도 썬 워크스테이션에 인스톨되어 운용되고 있는 솔라리스(Solaris)의 기초가 됩니다.
그 외 썬 마이크로시스템즈를 만든 사람은 빌 조이에 맞먹는 기술적 천재인 Bechtolsheim(초창기 썬 마이크로시스템즈의 CEO) 그리고 존 게이쥐라는 비져너리입니다. 존 게이쥐는 대학 재학 당시 베트남 파병 반대 시위를 주동하기도 했던 사람으로 수학을 전공했습니다. 이처럼 세 명의 걸출한 엔지니어와 운영 및 인력관리에 탁월한 소질을 갖춘 사람이 모여서 출발한 회사가 바로 썬 마이크로시스템즈였습니다. 엔지니어가 주축이 되서 만든 회사인 것입니다.
이렇게 최초 하드웨어 틈새시장을 노리고 시작했던 회사가 어떻게 해서 자바라는 전형적인 소프트웨어 상품을 만들어 내게 되었을까요?
자바(Java) 탄생의 역사
썬에는 패트릭 노튼이라는 25세의 재능있는 프로그래머가 있었습니다. 썬 마이크로시스템즈에서 추진하던 "NeWS 프로젝트"(X Windows 처럼 유닉스의 종류에 상관없이 GUI를 구현하는 기술)가 좌초한 뒤 앞으로의 진로를 고민하던 그는 스티브 잡스로부터 스카웃 제의를 받습니다. NeXT 사로 옮기는 게 어떠냐는 제안을 받은 것입니다. 넥스트 역시 고가의 워크스테이션 시장을 새롭게 뚫어 보려는 하드웨어 및 소프트웨어를 모두 다루는 회사였고, 특히 스티브 잡스라는 인물이 이끌고 있는 회사인만큼 기술적인 재능을 맘껏 펼칠 수 있으리라는 기대를 갖게 하기에 충분했습니다.
하지만 스캇 맥닐리는 '왜 넥스트가 실패할 수 밖에 없는가.'를 조목조목 설명한 이메일로 노튼을 주저 앉히고, 이에 노튼은 이전에 NeWS 팀을 이끌었던 제임스 고슬링(James Gosling)과 함께 새로운 기술을 찾아 보자고 의기투합합니다. 이것이 "Green"팀입니다.
Green팀이 새로 추진하던 기술의 출발은 이랬습니다.
"일반적인 가전제품 또는 휴대용 기기(Portable devices) 간의 커뮤니케이션을 가능케 해주는 기술이 없을까?"
이런 모토 하에 제임스 고슬링은 여러 장치에 들어갈 애플리케이션을 만드는 데 사용할 프로그래밍 언어를 개발하는데 착수했고 이것에 "Oak"라는 코드 네임을 붙입니다.
이 언어가 훗날 "자바"(Java)가 되는 것입니다.
Green팀의 프로젝트는 결국 [휴대용 장치 + 운영체계 + Oak로 작성된 애플리케이션]을 만들어 보겠다는 것이었습니다. 오늘날, 휴대폰이나 PDA에 인터넷 관련 기능을 첨가하는 데 있어 자바가 중요한 역할을 하게 될 거라는 말이 종종 들려 오는 까닭은 이처럼 자바가 개발 당시부터 Post PC 어플라이언스를 대상으로 만들어진 언어였기 때문입니다.
일반 소비자를 대상으로 한 프로젝트에서 출발한 "Oak"는 자연스럽게 현재의 자바가 강점으로 내세우는 여러 가지 특징을 개발 당시부터 요구받게 되는데요.
- 첫째, 절대 충돌이나 다운이 되어서는 안된다
- 자바는 C++ 에러의 가장 큰 원인인 포인터(pointer)를 없애서 안정성을 기합니다.
- 둘째, 씨피유에 상관없이 플랫폼 독립적이어야 한다
- 왜냐하면 그런 휴대용 장치는 여러 회사에서 여러 종류의 칩을 사용해서 만들어질 가능성이 컸기 때문입니다.
- 셋째. 네트워크에 적합해야 한다.
놀라운 것은 자바의 탄생에 있어 근본적인 자극제는 인터넷이 아니었다는 사실입니다. 근본적인 탄생 동기는 독립적 플랫폼을 지원하는 언어를 만들기 위해서였습니다. 예를 들어, 토스터기, 전자레인지, 리모컨 등과 같은 환경에서 구동되길 원했죠. 문제는 대부분의 컴퓨터 프로그래밍 언어가 특정 목표를 기준으로 컴파일 되도록 설계되었다는 것입니다. 예를 들면, C++와 같은 언어들이 그러했습니다.
비록, C++ 프로그램을 통해 어떤 CPU에서건 프로그램을 컴파일 할 수 있었지만, 그렇게 하려면 CPU 안에 C++ 컴파일러를 모두 내장해야 했습니다. 이렇게 되면 또 다른 문제가 발생하죠. C++ 컴파일러는 아주 비쌌고 이를 만들기 위해 엄청난 시간이 소요되었습니다.
얼마 뒤,
Green 팀의 작업이 거의 완성 단계에 이른 것을 본 썬 마이크로시스템즈의 경영진은 이를 상품화하기 위해서 "FirstPerson"이라는 자회사를 세워서 밀어 줍니다. 퍼스트퍼슨은 개발해둔 "Oak Technology"를 어디에 사용 해야 할 지 고민하다가 -기술은 완성해놓고, 시장을 찾는 형태가 된 거죠.- 당시 막 붐이 일기시작한 TV 셋탑박스에 주목하게 됩니다. 때 마침 TV 셋탑박스를 활용하는 컨텐츠 사업에 진출하려고 기회를 엿보고 있던 미디어 업계의 거인 타임워너는 셋탑박스에 사용할 프로그래밍 환경을 제공할 회사를 하나 둘 물색하게 됩니다.
퍼스트퍼슨은 승리를 자신하며 "Oak Technology"를 내세우고 타임 워너로 향합니다. 하지만 당시 상대적으로 무명인 썬 마이크로시스템즈는 그래픽 워크스테이션의 강자 실리컨 그래픽스(SGI)에게 밀립니다. 타임워너는 실리컨 그래픽스의 지명도를 믿고 함께 일을 하기로 결정하게 되죠. 한편, "Oak" 라는 이름이 이미 상표 등록이 되어 있다는 사실을 알게 된 썬 마이크로시스템즈는 새로 개발한 프로그래밍 언어의 이름을 "자바"(Java)로 바꿉니다. 타임워너 건에서 실패한 퍼스트퍼슨은 거의 해체 단계로 풍지박산 나게되구요.
그래도 희망은 있다고 버티던 몇몇 팀원들은 얼마 뒤 느닷없이 놀라운 시장이 출현한 것을 감지하게 됩니다.
그건 바로 "웹"이었습니다.
네트워크에 강해야 하고, 플랫폼 독립성이 있으면 좋고, 안정적이어야 하고, 바이러스로부터 안전해야 하는 프로그래밍 언어에 대한 필요성이 그 어느 곳보다 "웹"에서 절실히 요구되었던 것이죠.
그야말로 자바를 위해 웹이 출현한 건 아닐까 할 정도로 모든 요구 조건이 정확하게 맞아 떨어지는 것을 확인한 자바 개발 팀은 자바를 기반으로 웹브라우저를 완성해냅니다. "핫자바"(HotJava)라는 이름의 이 브라우저는 정적인 텍스트 문서를 읽어들이는 데 불과했던 당시의 웹브라우저들과 달리, 자바 기술을 사용함으로써 웹을 놀라운 수준의 '인터액티브 플랫폼化'할 수 있다는 것을 보여주며 삽시간에 전세계적 관심을 불러 일으킵니다.