자바는 미국의 선 마이크로시스템사가 개발한 객체 지향 프로그래밍 언어이다. 1995년 5월에 발표했으며 1996년 1월부터 정식 버전을 배포하였다. 자바는 C++를 기반으로 개발된 프로그래밍 언어와 Java VM(자바 가상 머신)을 기반으로 한 플랫폼으로 구성되어 있다.
자바의 프로그래밍 언어는 모든 소스 코드를 '.java'라는 확장자를 가진 텍스트 파일로 작성한다. 그 후 자바 컴파일러를 통해 '.class' 확장자를 가진 바이트 코드(bytecodes)로 중간 코드를 생성한다. 이 바이트 코드는 직접 실행이 가능한 코드를 가지고 있지 않다. 대신 이 바이트 코드를 자바 VM(Java Virtual machine)이라는 소프트웨어로 해석해 실행한다. 따라서 자바 VM(Virtual Machine)이 설치되어 있는 컴퓨터라면 컴퓨터의 명령 집합 아키텍처나 운영체제(OS, 예로는 마이크로소프트사의 윈도우즈, 솔라리스, 리눅스, MAC OS등)에 관계없이 같은 바이트 코드를 변경하지 않고 실행이 가능하다. 이는 자바의 원시 코드를 고치거나 재컴파일 과정이 없어도 그대로 사용이 가능하다는 뜻이다.
[자바의 실행과정(참고:선마이크로사의 자바 튜토리얼)]
자바는 초창기에 각광을 받지 못했지만, 자바의 특성인 기종이나 운영체제와 무관한 응용 프로그램을 개발하고 배포할 수 있기 때문에 임베디드(Embedded)분야와 엔터프라이즈(Enterprise) 분야를 위한 뛰어난 기술로 인정받기 시작하면서 각광을 받기 시작했다. 자바 한 가지만 제대로 익히면 임베디드에서부터 웹 프로그래밍, 고급 서버 프로그래밍, CORBA, EJB 등 현존하는 모든 컴퓨터 기술을 쉽게 적용할 수 있기 때문이다.
■ 자바 프로그래밍 언어의 특징
자바 프로그래밍 언어는 C++를 바탕으로 개발된 프로그래밍 언어이다. 지시자(Pointer)를 생략했으며, 프로그램에서 생성한 객체의 인스턴스를 자동으로 해제하는 기능을 추가하였다. 이와 같은 기술은 기억 장치 관리의 오류에서 기인하는 버그를 방지한다.
또한, 자바는 객체 클래스의 계승(ingeritance) 관계를 실행할 때에 확정하는 동적 모델을 채용하였다. C++에서는 컴파일 시에 계승관계를 확정하기 때문에 상위 클래스에 새로운 기능을 추가하면 그 클래스와 계승 관계에 있는 모든 클래스를 제컴파일해야 한다. 자바에서는 클래스의 계승관계를 실행할 때 확정하기 때문에 하위 클래스를 재컴파일 할 필요가 없다.
또한, 객체지향의 명료함과 편리성 때문에 기존 개발자는 상상도 하지 못했던 거대 규모의 프로젝트도 쉽게 설계가 가능해졌다. 그리고 자바 개발툴(IDE)는 거의 무료이다. Visual Studio 같이 몇 백만원씩되는 툴을 구하기 위해 고생할 필요가 없다. 이에 마이크로소프트에서도 C#을 발표하고, 닷넷 플랫폼을 발표하는 등 대응 전략을 발표하고 있다.
C와 C++과 자바를 비교했을 때 C와 C++는 절차지향과 구조체의 확장이라는 거의 비슷한 개념을 가지고 있다고 판단된다. 하지만 자바는 완전한 객체지향을 지향한다. 이에 자바는 객체 지향을 이해하기 위한 가장 좋은 언어로 평가받기 시작했으며, 객체 지향을 배우기 위해 자바를 공부할 정도이다.
[자바 프로그래밍 언어의 특성]
■ 자바 플랫폼(Platform)
플랫폼이란 하드웨어나 소프트웨어가 프로그램을 실행시키는 환경을 말한다. 우리가 이미 잘 알고 있는 플랫폼으로는 마이크로 소프트사의 윈도우즈, 리눅스, 솔라리스, Mac OS 등이 있다. 대부분의 플랫폼은 운영체제와 하드웨어의 조합으로 설명할 수 있다. 하지만 자바의 플팻폼은 소프트웨어 플랫폼으로서 하드웨어의 컨트롤은 다른 플랫폼(운영체제)에서 담당한다는 점이 다르다. 즉, 운영체제의 위에서 작동하는 소프트웨어 플랫폼이다 자바 VM이다.
따라서 자바를 그냥 프로그래밍 언어로 생각하기보다 플랫폼으로 보는 것이 더욱 어울린다. 자바 가상 머신은 CPU 역할을 하며, 다양한 응용 기술의 API를 포함하는 거대한 시스템이라는 의미이다. 따라서 자바는 단순히 문법 정도 익혀서는 안된다.
● 자바의 플랫폼 구성 요소
- Java Virtual Machine
- Java Application Programming Interface(API)
자바 VM(가상머신)의 실현 방법으로는 현재 3 종류가 있다. 바이트 코드를 해석하여 순차적으로 실행하는 자바 해석기, 바이트 코드를 일괄적으로 2진 코드로 변환하고 실행하는 JIT 컴파일러, 바이트 코드를 고속으로 해석하여 실행하기 위한 자바 칩(마이크로프로세서)이다.
'자바(Java) > JAVA 2SE' 카테고리의 다른 글
자바 플랫폼의 종류 (0) | 2010.11.29 |
---|---|
자바 프로그래밍 언어의 특징 (0) | 2010.11.29 |
자바 어플리케이션의 구성 (0) | 2010.11.28 |
TableModel 를 사용하여 구구단 출력하는 프로그램 (0) | 2010.09.03 |
URL 정보와 문서 정보 출력 프로그램 (0) | 2010.09.02 |