상세 컨텐츠

본문 제목

JAVA의 탄생

청강컴정/JAVA

by luckey 2009. 3. 20. 10:51

본문

자바의 유래는 실로 조그마한 가전 기기에서 사용될 보다 지능적인 시스템을 구축하기 위한 것이었다.
자바가 이렇게 소형기기를 위해서 설계된 것임에도 불구하고 네트워크와 인터넷에 더 적용될 수 있었던 데는 그만한 까닭이 있다.

우선 소형기기에 사용되는 Embedded System을 생각해 보자. Embedded System은 공장의 기계, 자판기 등에서 사용하는 보통 4bit에서 32bit에 이르는 다양한 micro processer를 사용하고 다양한 주변기기를 사용하는 시스템이다.
값싸게 구축할 수 있는 반면 시스템마다 고성이 판이하게 달라서 유지 보수가 힘든 단점이 있다. 물론 네트워크나 OS의 개념도 아주 미약하다. 이러한 시스템에 공통적으로 적용할 수 있는 작고 효율적인 시스템을 제공하기 위해서 설계된 것이 자바 시스템이다. 당연히 작고 효율적이며 플랫폼 독립성을 가질 수 있도록 고안되었다. 그러나 현실적으로는 그다지 성공적이라고 할 수 없는 것이 자바가 이러한 임베디드 시스템에서 사용되던 OS보다 너무 복잡한 기능을 요구한다는 것이다. 하지만 앞으로 임베디드 시스템에서도 자바가 충분히 효용성이 있는 고수준의 프로세서가 많이 사용될 것이므로 그리 비관적이지 만은 않다.

무엇보다도 실시간 네트워크를 통해서 통합적으로 관리할 필요가 많아지고 있다는 것이 임베디드 자바의 전망을 밝게 한다.

실제적으로 자바가 본격적으로 빛을 발하기 시작한 것은 인터넷 환경이었다. 이는 자바가 개발되었을 때, 마침 거세지기 시작한 인터넷 열풍때문이다. 인터넷에서 컨텐츠를 전달하기 위한 가장 보편적인 formatting 언어인 HTML이 정적인 문서만을 제공하였기 때문에 사용자와의 상호작용이 부족했다. 사용자에게 가능한 선택을 제공하였기 때문에 사용자와의 상호작용이 부족했다. 이에 넷스케이프에서는 썬(SUN)의 JAVA System을 네트워크용으로 변화시켜 Applit 의 형태로 HTML에 포함시킬 수 있도록 하였는데, 이것이 자바가 널리 알려진 계기가 되었다. Java Applit은 작고 빠르면서도 어떠한 플랫폼에서도 사용할 수 있었기 때문에 다양한 시스템이 공존하는 인터넷에 사용하기 안성맞춤었다. 도한 여기서 중요한 역할을 하는 것이 자바의 보안성이었다. JAVA는 network에서 매우 중요한 보안문제에 있어서 매우 안전했기 때문에 사용자들이 안심하고 사용할 수 있다.

이후 JAVA는 간단한 Applit 이나 project의 원형판을 만들기 위해 많이 사용했고, Applit의 경우는 가벼운 게임, 텍스트와 그림을 스크롤시키는 utility등을 예로 들 수 있다. 대학이나 연구소에서는 JAVA가 특히 인기가 있었는데 UNIX와 Windows 환경에서 모두 사용이 가능하며 쉬웠기 때문이다.

Java & Java 기술
JAVA는 셋탑박스(Set_top box, TV를 사용하여 Internet을 사용할 수 있는 장치)의 대화식 제어를 위한 연구 과정에서 개발된 언어와 System 이다. JAVA 개발의 중심적인 인물은 고슬링이다. 그는 고급의 텍스트 에디터인 Emacs를 C언어로 재작성한 최초의 프로그래머이며 나중에는 썬마이크로시스템 사에서 SUN WorkStation을 위한 Window System 인 NewS를 개발한 것으로 유명하다.

JAVA는 특정한 칩셋이나 운영체제에 구애받지 않고 다양한 platform을 지원하기 위한 방법으로 가상머신을 사용하고 대화식 제어를 위한 모든 프로그램을 가상 머신에서 동작하도록 하는 기법을 채택하였다.

그 결과 JAVA 가상 머신을 구현하는 임의의 시스템에서 JAVA Program을 실행할 수 있다. 그러나 SUN사의 의도만큼  셋톱박스의 시장이 형서되지 않은 까닭에 수년 간에 걸친 연구 결과과 무용지물이 될 처지에 놓이게 되었다. 이에 고슬링과 SUN사의 전략담당부서에서는 JAVA와 JAVA기술을 적용할 수 있는 다른 큰 대상을 물색하게 되었는데, 그 첫번째 대상이 바로 동적 WebPage Programming분야이다.

동적 WebPage Programming를 구축하기 위한 당시의 기술은 CGI를 사용하는 것이었다. 그러나 CGI는 서버측에 큰 부담을 주며, 불순한 의도를 가진 사용자에 의해 해킹당할 위험도 컸다. 그러나 보다 큰 근본적인 문제는 CGI프로그램은 서버측의 시스템에 종속적인 프로그램이므로 시스템간의 호환성이나 이식성을 보장할 수 없다는 것이었다.

가상머신에 기반을 둔 JAVA는 이 문제에 대한 해결책을 제시하였다. 즉 동적 웹페이지를 위한 프로그램(Applit)을 자바로 작성하고 이를 서버에서 실행하는 대신 웹브라우저 등을 사용하여 클라이언트에서 실행하도록 한 것이었다.
자바는 또한 고유한 보안 모델을 제시하여 웹을 통한 정보 교환의 안정성도 크게 강화하였다. 고슬링과 동료 연구원들은 핫자바(Hot Java)라는 이름의 웹 브라이저를 자바 언어로 개발하여 이러한 가능성을 시범적으로 선보였다.
당시 웹브라우저 시장을 독점하다시피 한 넷스케이프 사에서 자바 기술을 넷스케이프 브라우저에 포함시키기로 결정한 것은 자바의 성공에 결정적으로 기여하였고, 넷스케이프 사와 경쟁관계에 있던 마이크로소프트 사에서도 인터넷 익스플로어에 자바를 채택하게 되었다.

자바 기술을 인터넷과 웹이 보편화 되었고, 특히 이식성과 보안성이 요구되는 동적 웹페이지 개발을 위한 당사의 요구에 부응하는 해결책을 제시하였다는 의미가 있다. 엄밀히 말하면 동적 웹페애지 작성을 위한 언어로 자바만 있는것이 아니며 자바가 최성의 선택인게 아니다. 그리고 가상머신을 채택하여 이식성을 모색한 아이디어도 새로운 것은 아니다.
그럼에도 불구하고 자바는 '필요한 시기에 가장 적절한 해결책' 을 제시함으로써 단기간 내에 가장 각광받는 기술로 자리매김을 하게 되었다.
자바가 개발되었던 당시의 공식적인 명칭은 OAK 였다. 이는 개발팀이 주로 모이던 회의실 창 밖으로 보이던 참나무과의 나무 이름에서 착안되었다고 한다. 그러나 OAKlisp라는 프로그래밍 언어가 이미 있다는 사실을 알게 된 고슬링은 회의에서 자주 마시던 커피 이름이 자바(Java)로 언어와 시스템의 이름을 변경하게 되었다.

관련글 더보기

댓글 영역