Last Modified : 2010.12.03

Java의 탄생과 특징

1. Java의 탄생

1990년 12월 썬 마이크로시스템즈의 Green팀은 멀지 않은 미래에 컴퓨터와 가전제품의 통합된 환경이 올 것이라 예측한다.
Green팀은 가전제품의 기능을 제공하기 위한 프로그래밍 언어로 C++ 이 적합하지 않음을 발견하고 새로운 언어의 필요성을 느끼게 되는데 그들이 원하는 새로운 언어는 가전제품에서 실행되고, 분산 환경에 적합하고, 다양한 플랫폼에서 작동(가전제품이 통합된 하드웨어나 운영체제를 가지고 있지 않기 때문에)할 수 있는 것이었다.(여기서 분산환경은 가전제품과 가전제품간에, 혹은 가전제품과 컴퓨터간에 커뮤니케이션이 되는 환경을 말한다.)
그들은 이러한 요구사항을 반영하는 프로그래밍 언어 Oak를 만든다.
Oak는 보안(가전제품에서 실행되기에)과 네트워크(분산환경에 적합해야 하기에)에 강력한 기능을 가지고 있었고, 다양한 플랫폼에서 실행되어야 하기에 버추얼 머신 이라는 개념이 도입되었다.

1990년대 초반 썬은 Oak와 관련된 영업에 실패한다.
이러한 기술이 적용하기에는 아직 환경이 조성되지 않았기 때문이었다.
당시 WWW(World Wide Web)이 급성장하고 있었는데 썬은 Oak가 인터넷 환경에 적합하다는 사실을 깨닫는다. 수많은 다양한 플랫폼의 컴퓨터가 연결되어 있는 인터넷 환경에서 하드웨어나 운영체제에 얽매이지 않는 Oak가 유망하리라 판단한 것이다.
썬은 Oak의 이름을 Java로 바꾸고 전폭적인 지원을 한다.
처음 자바를 세상에 알린 것은 Java Applet 기술이다.
자바 가상 머신을 탑재한 웹 브라우저에서 3차원 분자 구조 모양을 마우스에 따라 움직이는 하는 시연은 청중의 탄성을 유도하기에 충분했다.

썬은 1995년 5월 23일 자바를 무료 라이센스로 공식 발표했고 애플릿은 웹문서 속의 프로그램이라는 새로운 기술로 인터넷의 확산과 함께 곧 대중화된다.
무료 라이센스 정책과 애플릿의 성공으로 자바는 인터넷 언어로 부각되면서 인기를 얻는다.
현재 자바는 애플릿과 같은 클라이언트 측 기술보다는 서버에서 돌아가는 기업용 애플리케이션을 만드는 기술로서 더 성공적이다.
그 시작은 JDBC였다.

2. Java의 특징

분산환경에서 가전제품의 기능을 소프트웨어로 제공하는 위한 프로그램 언어라는 태생적인 이유에서 특징을 찾을 수 있다.

자바 가상 머신(Java Virtual Machine, JVM)

자바의 경우 소스 파일을 자바 컴파일러(javac.exe)로 컴파일하면 1 Byte 단위로 의미를 가지는 바이너리 파일이 만들어진다. 파일의 확장자는 class이며 바이트 단위로 해석되기에 이 파일을 바이트코드라고 부른다.
바이트코드는 어떤 운영체제에서나 돌아갈 수 있는 플랫폼 독립적인 코드로 자바 인터프리터(java.exe)에 의해 자바 가상 머신내에서 실행된다.
가상 머신이란 개념은 통합된 하드웨어나 운영체제를 갖지 않는 가전제품에 들어갈 프로그램이 코드의 수정없이 동작해야 한다는 요구조건에 부합하기 위한 Green팀 엔지니어의 해결책이었다.
현재 자바의 가상 머신은 자바가 PDA, 핸드폰, 가전제품의 프로그래밍 언어로 주목을 받게 하고 있다.

Object Oriented Programming(OOP)로서의 Java

자바는 객체지향 프로그래밍 언어다.
분산환경을 고려한 자바는 객체 지향 개념을 채택했어야 했다.

강력한 네트워크 기능

자바는 처음부터 분산환경을 고려하고 만들어졌다.
여러 가전제품들이 함께 작업을 수행하도록 만들어진 언어이기에 분산컴퓨터 환경에서 최적의 언어일 수 있는 것이다. 분산컴퓨팅은 네트워크 상에서 여러 대의 컴퓨터가 함께 작업을 수행하는 것을 일컫는다.
분산환경을 고려했으므로 자바는 처음 탄생때부터 강력한 네트워크 기능을 제공해 오고 있다.

참고문서

자바 탄생의 역사와 썬마이크로시스템즈
자바 개발팀의 핵심 멤버였던 Kim Polese의 인터뷰
www.emh.co.kr/xhtml/java.html