1.1 자바의 기본

[메인] [목록]

목차
  • 자바의 탄생
  • 자바의 특징
  • 자바의 종류

1.1.1 자바의 탄생

마이크로프로세서의 가장 중요한 공헌은 전세계 수십 억대에 이르는 개인용 컴퓨터 개발을 가능하게 한 것이다. 개인용 컴퓨터는 사람들에게 상당한 충격이었으며 조직이 자신의 비즈니스를 관리하는 방법을 갖게 되었다. 많은 사람들이 마이크로프로세서가 영향을 끼칠 다음 영역은 지능적 전자 소비장치라고 생각하고 SUN사에서 C , C++을 기반으로 한 Oak라는 언어를 개발했는데, 나중에 동일한 컴퓨터 언어가 했었다는 것이 밝혀졌다. 그래서 SUN그룹은 자역 커피숍에서 논의하던 중 자바(JAVA)가 제안되었고 받아들여졌다.

그러나 자바가 처음 나왔을 무렵에는 생각보다 빠르게 발전하지는 못했다. 이러저러한 일로 고전을 면치 못하다가, 1993년 월드와이드웹이 대중적으로 인기를 끌면서 웹페이지를 만드는데 자바가 이용된다는 것이 자바가 발전하는데 기폭제가 되었다.

자바는 이제 컴퓨터를 이용한 대부분의 현장에서 그 진가를 발휘하게 될 것이다.

  • 금융, 사무 자동화, 인트라넷 분야 : 금융, 사무자동화와 같은 실시간 환경, 워크 플로우 기능이 요구되는 환경에서 자바의 위력은 유감없이 발휘된다. 온라인 은행 업무, 라이브 데이터 교환, 보안 무역(거래), 실시간 문서 관리, 사무 자동화 등에 주요 기술로 자바를 빼놓을 수 없는 것도 이 같은 자바의 특징을 반영하는 일례라고 하겠다.
  • 오락, 게임 분야 : 자바의 특징 중 하나는 웹 상에서 여러 사용자가 인터랙티브한 게임을 할 수 있다는 점이다. 다중 사용자 게임을 비롯해 컴퓨터 시뮬레이션에 이르기까지 그 활용 범위는 무궁무진하다.
  • 홈쇼핑, 광고 분야 : 자바의 애니메이션 기능은 기존 웹을 이용한 광고, 홈쇼핑 등에 적용되어 크게 각광받을 수 있는 적용 분야이다. 인터랙티브 쇼핑, 라이브 경매, 상호 작용 3D, 오디오/비디오 고아고 등이 가능하다.
  • MIS 분야 : 자바 환경은 MIS 분야에 적용되어 군사 응용 프로그램, 네트워크 데이터베이스 액세스 프로그램 등에 활용될 수 있다.

1.1.2 자바의 특징

자바가 프로그래밍 언어로서 각광받고 있는 것은 바로 자바의 설계 및 프로그래밍 특성때문이다. 특히 프로그램을 한 번만 작성하면 어디에서든지 실행할 수 있다는 점이다.

1) 단순성

자바 언어는 다른 언어와 마찬가지로 프로그래밍 언어의 모든 기능을 제공하는 강력한 언어이지만 일반적인 프로그래밍 언어에서 잘 사용되지 않는 기능을 제외시켜 보다 단순한 구조로 만들어져 있다. 자바 언어는 C++의 문법과 유사하게 고안되었는데, 이는 C 언어와 C++ 언어 프로그래머들이 자바 언어를 쉽게 익히게 하기 위해서이다.

2) 객체 지향성

컴퓨터 프로그램은 컴퓨터의 명령어들의 집합이다. 즉, 프로그램을 통하여 컴퓨터가 할 일을 명시한다. 프로그램 없는 컴퓨터는 껍질밖에 없는 기계에 불과하다. 프로그래밍 언어는 많이 있지만 C++을 제외하고는 전부 절차적 언어이다. 객체지향 프로그래밍 방법은 객체를 이용하여 실세계를 모델링한다. 실세계의 모든 것은 하나의 객체로서 모델링이 될 수 있다. 자바로 프로그래밍한다는 것은 객체를 생성하고, 객체를 조작하고, 객체들이 함께 일을 수행하도록 하는 작업이기 때문에 자바 프로그램은 객체 지향이다.

3) 분산성

분산 컴퓨팅은 네트워크 상에서 여러 대의 컴퓨터가 함께 작업을 수행하는 것이다. 자바는 이러한 분산 컴퓨팅을 쉽게 할 수 있도록 설계되었다. 네트워크 긴응이 자바에 내재되어 있기 때문에, 자바로 네트워크 프로그램을 작성하는 것은 파일로부터 데이터를 받거난 보내는 것과 동일하다.

세 개의 다른 시스템에서 실행됨을 보여주고 있다. 즉, 세 개의 프로그램은 하나의 협동작업을 수행하기 위하여 서로 통신을 하고 있는 것이다.

4) 견고성

견고성은 신뢰를 의미한다. 완전하게 신뢰할 수 있는 프로그래밍 언어는 존재하지 않는다. 그러나 자바 컴파일러는 다른 언어가 실행시에 발견할 수 있는 오류들도 초기에 잡아낼 수 있으며, 런타임 예외처리 기능을 통하여 프로그래밍에 견고성을 제공한다. 자바는 예외 상황을 잡고 이에 대응함으로써 런타임 오류가 발생하는 경우에도 프로그램의 정상 실행이 계속되도록 하고 정상 종료되도록 한다.

5) 보안성

인터넷 프로그래밍 언어로서 자바는 네트워크 및 분산 환경에서 사용된다. 만약 자바 애플릿을 다운로드하여 컴퓨터에서 실행시킨다면, 그 프로그램은 시스템에 손상을 입히지 않을 것이다. 왜냐하면 자바는 몇가지 보안 메커니즘을 구현하여 잘못된 프로그램으로 인해 생기는 피해로부터 막아주기 때문이다.

6) 이식성

유형 정의를 시스템에 무관하게 정의하고 있다. 네트웍을 통해 프로그램을 다운받아 하드웨어에 관계없이 사용하기 위해서는 근본적으로 아키텍처에 독립적이고 이식성을 보장하는 구조가 요구된다. Java는 이러한 문제를 해결하게 위해 하드웨어 아키텍쳐, 운영체제 인터페이스, 윈도우 시스템에 독립적인 바이트 코드를 사용한다.
Java 프로그램은 Windows95/NT, Solaris2.x, Mac OS7.5와 같은 Java가 지원되는 모든 플랫폼상에서 Java 컴파일러에 의해 바이트 코드 형태로 컴파일되고, 인터프리터가 동작하는 Java 가상 기계에 의해 어떤 기종의 시스템에서도 쉽게 해석됩니다..

7) 다중 스레드 지원

다중 스레드화는 몇 개의 작업을 동시에 수행하도록 하는 프로그램의 기능이다. 예를 들면, 비디오 파일을 다운로드하면서 동시에 그 비디오를 재생하는 것은 다중 스레드에 의한 것이다.
이외에도 여러 가지가 있지만 여기까지만 하자.

1.1.3 자바의 종류

자바는 크게 아래와 같이 3가지로 이루어 진다.
  • J2SE(Java Standard Edition) : 일반적인 PC상에서 구동되는 전반적인 프로그램을 작성할 수 있는 플랫폼
  • J2EE(Java Enterprise Edition) : 기업환경, 즉, 웹이나 대단위 작업을 필요로 하는 플랫폼
  • J2ME(Java Micro Edition) : 핸드폰이나 TV에서 돌아가는 플랫폼

좀더 자세하게는 아래의 그림을 참조한다. (아래 그램은 Tip board의 내용을 참조했슴)

참고문헌