[IT인물열전] 자바의 아버지, 제임스 고슬링
[IT동아 이상우 기자] 자바(Java)는 세계에서 가장 널리 쓰이는 프로그래밍 언어다. 간단한 PC용 소프트웨어나 게임, 웹 애플리케이션은 물론, CRM, ERP, SCM 등의 기업용 애플리케이션을 만드는 SI(시스템 구축) 작업에 많이 쓰인다. 게임의 경우 모장(Mojang)이 만든 마인크래프트(Minecraft)가 자바 플랫폼 위에서 작동하는 대표적인 사례다. 안드로이드 스마트폰 앱 개발도 대부분 자바를 통해 이뤄진다. 안드로이드 앱 개발의 진입 장벽이 낮은 이유도 개발자들이 기존에 익힌 자바 언어를 대부분 그대로 사용할 수 있기 때문이다.
다양한 기기나 운영체제에서 사용할 수 있는 것도 특징이다. 오라클이 밝힌 바로는 전세계 1억 2,500만 대의 TV, 30억 대의 휴대폰에 쓰이고 있으며, 블루레이 디스크에 나타나는 대화형 메뉴 창은 대부분이 자바로 개발됐다. 자바는 오늘날 우리 주변 어디에나 존재한다고 해도 과언이 아니다. 자바를 만든 사람은 캐나다의 소프트웨어 개발자 제임스 고슬링(James Arthur Gosling)이다. 세계에서 영향력 있는 개발자 중 한 명이며, 은둔형 개발자의 아이콘이기도 한 그의 삶에 관해 알아보자.
<자바를 만든 제임스 고슬링, 출처: 위키백과>
웹과 프로그래밍 언어의 만남
제임스 고슬링은 1955년 캐나다 앨버타 주에서 태어났다. 1977년 캘거리 대학에서 컴퓨터 공학 학사를, 1983년 카네기 멜론 대학에서 컴퓨터 공학 박사 학위를 받는다. 박사학위를 수료한 이후 1984년부터 소프트웨어, 정보 기술 개발사인 '썬 마이크로시스템즈(SUN Microsytems)'에서 근무한다.
자바는 1991년부터 제임스 고슬링이 재직 당시 주도한 '그린 프로젝트'에서 시작한다. 처음에는 냉장고, 전기밥솥, TV 등의 가전제품에 장착하는 컴퓨터 칩에 각종 기능을 넣기 위한 프로그래밍 언어로 쓰일 예정이었지만, 계획이 무산됐다. 이 아이디어가 나온 20여 년 전만 하더라도 가전제품용 메모리나 컴퓨터 칩은 이러한 프로그램을 구동할 성능을 갖추지 못 했기 때문이다.
마침 팀 버너스 리가 개발한 월드 와이드 웹이 선풍적인 인기를 끌기 시작했다. 제임스 고슬링은 웹이 널리 알려지기 시작한 1993년부터, 지금까지 개발해온 프로그래밍 언어가 월드 와이드 웹용 개발 언어인 HTML의 정적(靜的)인 부분을 보완할 수 있으리라 판단하고, 이를 웹과 결합하는 방법을 모색했다. 이를 통해 1995년 자바 1.0이 공개됐다.
어떤 플랫폼에서든 사용할 수 있는 프로그램
당시 등장한 자바의 모토는 'WORA(Write Once, Run Anywhere)'다. 즉 개발 코드를 한 번만 작성하면 어떠한 플랫폼에서든 쓸 수 있다는 의미다.
일반적으로 소프트웨어는 운영체제가 다르면 서로 호환할 수 없다. 예를 들어 윈도에서 사용하는 MS 오피스 같은 소프트웨어는 개발자가 맥OS X용을 별도 제작해 내놓지 않는 이상, 맥 사용자는 이를 이용할 수 없다. 제임스 고슬링은 이러한 문제를 가상 머신(JVM)을 활용하는 방법으로 해결했다. 운영체제와 자바로 개발한 프로그램 사이에 중계자 역할을 하는 가상 머신을 만들고, 이를 통해 모든 운영체제에서 똑같이 작동하는 프로그램을 만들 수 있다.
<썬 마이크로시스템즈 재직 당시 자바에 관해 인터뷰하는 제임스 고슬링, 동영상 링크: https://youtu.be/r19P3y1VBiw>
개발자들은 환호했다. 운영체제에 자바 가상 머신만 설치돼 있으면 어떤 웹 브라우저에서든 '자바 애플릿(자바 기반 웹 브라우저 플러그인)'을 불러와 프로그램을 실행할 수 있었기 때문이다. 이후 등장한 JDK(자바 개발 도구) 1.2버전부터는 각 개발자가 다양한 플랫폼에서 사용할 수 있도록 자바 엔터프라이즈 에디션, 자바 모바일 에디션, 자바 스탠다드 에디션 등을 만들었다.
자바는 웹 브라우저에서 추가기능을 실행하기 위해 별도의 소프트웨어(자바 런타임 등)을 설치해야 한다는 점에서 액티브X와 유사한 듯 보인다. 하지만 윈도 운영체제와 인터넷 익스플로러에 종속된 액티브X와 달리, 자바는 거의 모든 운영체제와 웹 브라우저에서 작동하기 때문에 호환성이 높다.
한편, 썬 마이크로시스템즈는 2009년 오라클(Oracle)에 인수됐다. 일명 '닷컴 버블'이라고 불리는 인터넷 기업 붐이 시들해지면서 어려움을 맞은 것이다. 제임스 고슬링은 썬 마이크로시스템즈가 인수된 이후 오라클에서 약 1년간 최고 기술 책임자(CTO)로 활동한다.
오라클에 등을 돌리다
제임스 고슬링은 2010년 오라클을 떠난다. 이에 관한 이유를 자세하게 설명하지는 않았지만, 그의 블로그에 '상실감이 컸다'는 말을 남겼다. 아마도 자바를 이윤추구를 위해 사용하는 오라클의 행보가 보기 편하지만은 않은 듯하다. 실제로 오라클은 2010년 구글 안드로이드 운영체제에서 사용한 자바 API에 대해 저작권 관련 소송을 걸기도 했다(물론 이 소송의 승자는 구글이다).
<제임스 고슬링의 최근 모습, 출처: 제임스 고슬링 공식 홈페이지>
자바의 아버지가 다음으로 선택한 곳은 당시 오라클과 소송을 벌이고 있던 구글이다. 그가 구글을 선택했을 당시 업계에서는 다양한 추측을 내놓았다. 예컨대, 구글에서 상징적인 위치에 있는 리더가 될 것이라던가, 새로운 모바일 운영체제와 개발 언어를 만들 것이라는 등의 추측이 나왔다. 하지만 제임스 고슬링은 입사한지 5개월만에 구글을 떠난다. 이런 상황을 봤을 때 구글과 오라클의 소송에서 구글에 힘을 실어주는 목적이 컸을 듯하다.
구글을 떠난 그가 입사한 곳은 신생 로봇 공학 기업인 '리퀴드 로보틱스(Liquid Robotics)'다. 리퀴드 로봇은 정보 수집 로봇을 개발하는 기업이다. 예를 들면 바다 위에 띄워놓고 해수면의 온도나 파도의 높이 등을 수집한다. 이렇게 수집한 데이터를 통합 관리하려면 그만큼 뛰어난 알고리즘이 뒷받침돼야 하는데, 제임스 고슬링은 이러한 알고리즘 개발을 맡고 있다.
<그는 현재 리퀴드 로보틱스에서 데이터 분석 알고리즘을 개발하고 있다, 출처: 제임스 고슬링 Vimeo>
자바라는 이름의 유래
제임스 고슬링이 주도하던 프로젝트의 코드명은 오크(Oak) 혹은 프로젝트의 이름을 따서 그린(Green)이라고 불렀으며, 자바라는 이름이 붙은 것은 그 이후다. 이 이름의 유래에 관한 설은 다양하다. 그가 프로젝트의 이름을 생각하던 중, 책상에 놓인 자바산 커피가 눈에 들어왔다는 설이 있다. 또 다른 설은 썬 마이크로시스템즈가 프로젝트 이름을 위해 관계자들을 가둬놓고 마라톤 회의를 시키면서 특정 질문에 연상되는 단어를 떠올리게 했을 때 자바산 커피라는 단어가 나와서 이를 선택했다는 소문도 있다.
<커피잔과 접시 모양의 자바 로고>
소문은 이렇게 무성하지만, 공통적으로 포함하는 내용은 역시 자바산 커피다. 실제로 제임스 고슬링은 평소 인도네시아 자바산 커피를 즐겨 마신 것으로 유명하다. 또한, 자바의 로고는 커피잔과 접시로 구성된 것을 봤을 때 자바산 커피에서 프로젝트 이름을 따왔다는 설이 유력하다.
자바와 자바스크립트는 다르다
자바와 자바스크립트(JavaScript)는 이름 때문에 같은 맥락의 개발 언어라고 생각하는 경우가 있는데, 사실 둘은 전혀 다르다. 자바 스크립트는 넷스케이프에서 개발한 프로그래밍 언어다. 자바로 개발한 프로그램은 독립적인 응용프로그램 형태로 존재할 수 있지만, 자바스크립트는 HTML 문서 내부에 위치해 대화형 기능을 추가하는 용도로 쓰인다. 즉 HTML 문서를 보는 도구 '웹 브라우저'에서 직접 작동한다는 의미다.
물론 자바도 웹 브라우저에서 작동한다. 하지만 가상 머신을 통해 작동하기 때문에 근본이 다르다. 웹 브라우저는 가상 머신으로 구현한 자바의 기능을 표시하는 도구에 불과하다. 혹자는 자바와 자바스크립트의 차이를 '인도'와 '인도네시아'의 차이라고 설명하기도 한다. 이름은 비슷하지만 전혀 다르다는 의미다.
20년만에 현실이 된 그의 프로젝트
자바는 처음 프로젝트 의도와는 조금 다르게 웹 애플리케이션 개발 언어로 태어났다. 앞서 말한 것처럼 당시 전자기기는 성능이 부족해 프로그램을 수용할 만한 여력이 되지 않았기 때문이다. 하지만 자바가 탄생한지 20여 년이 지난 지금, 자바는 기기와 운영체제에 관계없이 다양한 플랫폼에서 작동한다. 그의 프로젝트가 현실이 된 셈이다.
<자바가 쓰이는 곳, 출처: 오라클 홈페이지>
그는 외부에 나서서 활동하는 것을 즐기지 않은 만큼, 눈에 띄는 일화도 드물다. 하지만 그가 오늘날 개발자들에게 준 선물은 엄청나다. 쉽게 사용할 수 있는 개발 도구인 것은 물론, 가상 머신을 통해 다른 운영체제에서도 똑같은 프로그램을 구동할 수 있다는 점은 개발자의 작업량을 줄이는 데도 일조했다. 제임스 고슬링이 개발한 그것은 소프트웨어 개발의 핵(Core)이라고 할 수 있다.
글 / IT동아 이상우(lswoo@itdonga.com)
※본 기사는 네이버캐스트(http://navercast.naver.com/)의 'IT 인물 열전' 코너에도 함께 연재됩니다.