티스토리 뷰

자바의 탄생

 자바(Java)는 썬마이크로시스템즈(이하 썬)사에서 개발한 프로그래밍 언어다. 썬은 일반인에게 생소하나, 인터넷 서버 하드웨어 및 SunOS(솔라리스에서 사용하는 OS)로 인터넷 확산에 매우 큰 공헌을 한 유명한 회사다.

 1992년 썬에서는 '그린 프로젝트(Green Project)'라는 네트워크에 기반을 둔 가정용 단말기를 만들기 위해 가볍고 견고한 객체지향 언어인 오크(OAK)를 개발했으나 여러 가지 이유로 상품화하지 못했다. 하지만 인터넷이 급속히 확산되면서 '자바'라는 이름으로 새롭게 탄생했다. 1995년에 발표된 최초의 자바인 JDK 1.0은 개발자들의 찬사와 혹평을 동시에 받았다.

 자바의 가장 큰 특징은 바로 '자바 가상머신(JVM, Java Virtual Machine)'이라는 개념이다.
기존 C언어가 특정 플랫폼(하드웨어, OS)에 종속된 코드를 생성하는데 반해, 자바는 컴파일하면 '바이트 코드(Byte Code)' 파일을 생성한다. 그리고 이 파일은 특정 운영체제가 아닌 자바 가성머신으로 해석되고 실행된다.

 가상머신의 특징은 하드웨어나 OS가 비교적 자유롭다는 것인데, 쉽게 말해 PC에서 만든 프로그램을 아무런 수정이나 컴파일 없이 휴대폰이나 냉장고 등 가전제품에서도 실행할 수 있다는 것이다. 물론, 실행하려는 기기에 맞는 JVM을 개발해야 하고, 그 기기에 JVM이 설치되어 있어야 한다는 조건이 있다.

 이런 가상머신은 다양한 운영체제와 하드에어에서 실행할 수 있다는 장점이 있다. 하지만 시스템에 최적화된 바이너리에 비해 속도가 느려질 수 있고, 모든 플랫폼에서 VM을 개발해야 한다는 문제가 있다. 물론 최근에는 가상머신의 기술이 발전해서 속도도 많이 향상되었고, 마이크로소프트사(이하 MS)의 닷넷(.NET) 기술도 자바의 성공에 발맞춰 VM의 개념을 도입하기에 이르렀다.



자바의 변천과정

애플릿
 자바에서 처음 강조했던 부분은 '애플릿(Applet)' 기술이었다. 이것은 자바로 만든 애플리케이션(응용프로그램)을 웹 브라우저에서 실행하는 형태였다. 초기 웹은 텍스트와 이미지, 간단한 사운드 밖에 처리할 수 없어 매우 단조롭고 정적인 웹페이지 형태였는데, 자바 애플릿이 화려한 애니메이션과 멀티미디어 지원, 사용자와 실시간으로 상호작용하는 인터페이스 등을 지원하여 웹을 한 차원 높은 수준으로 끌어올릴 것으로 기대하였다.

 애플릿을 실행하려면 PC 하드디스크에 있는 클래스 파일을 실행해야 한다. 그러나 원격지 서버가 클라이언트 PC의 애플리케이션을 실행하는 것은 보안상 문제로 관리가 어려워 초기에 조금 사용되다가 지금은 거의 사용하지 않는다. 또한 플래시 처럼 더욱 편리하고 화려한 멀티미디어 웹 기술도 개발되어 애플릿 수요는 급격히 감소하게 되었다.

서블릿
 자바를 발표하고 나서 조금씩 사용자를 넓히던 1997년, 썬은 다시 한번 획기적인 자바 기술인 '서블릿(Servlet)'을 선보였다. 서블릿은 자바에 기반을 둔 웹 프로그래밍 기술로, 초창기 웹 프로그래밍 모델인 CGI(Common Gateway Interface)에 비해 편리성과 성능 면에서 뛰어나 다시 한번 개발자들의 관심을 불러모았다.

 이후 서블릿은 'JSP (Java server Page)' 기술로 발전하였고, 'Java EE(Enterprise Edition)'의 발판이 되었다. 이 외에도 자바와 관련된 다양한 기술과 비전이 있는데, 이 부분은 다음에 좀 더 자세히 살펴 볼 것이다.


728x90