Search

'java'에 해당되는 글 2건

  1. 2007.08.28 Java Programming 시작하기 2 - 설치
  2. 2007.08.28 Java Programming 시작하기 1 - 소개

1. JDK(Java Development Kit) 설치

Java를 사용하기 위해서는 Java가 실행이 가능한 환경을 만들어 주어야 합니다.
Sun Microsystems 사에서 JDK의 다운로드 주소는 아래와 같습니다.

http://java.sun.com/javase/downloads/index.jsp

첫 화면

현재(07년 08월 28일)는 JDK 6 Update 2 가 최신버전입니다. Download를 선택합니다.

사용자 동의
다운로드

다운로드가 완료 되면 설치합니다.


2. Eclipse 설치

Eclipse는 Java 개발툴로서 무료프로그램입니다. (프리웨어)
설치없이 다운로드 후 압축 풀기 방식으로 사용하실 수 있습니다.

Eclipse를 다운로드하는 방법은 Eclipse 홈페이지를 접속하여, 프로그램을 다운로드합니다.
홈페이지는 아래와 같습니다.

http://www.eclipse.org

첫 화면

Download Eclipse를 선택 후 Eclipse Classic 를 다운로드 받습니다.

다운로드

다운로드가 완료 되면 원하는 위치에 압축을 해제 합니다.

1. Java는?

 네트워크상에서 쓸 수 있도록 Sun Microsystems 사에서 개발한 객체 지향 프로그래밍 언어입니다.

 1995년 5월에 발표, 1996년 1월부터 정식 버전을 배포하였습니다. C++를 바탕으로 언어 규격을 규정하였습니다. 버그의 원인이 되기 쉬운 기능, 예를 들면 지시자(pointer) 연산을 생략하였으며, C++에서는 사용이 끝난 객체(object)를 명시적으로 폐기하도록 프로그램에 기술하였으나 그 대신 자동 폐영역 회수(garbage collection) 기능을 추가하였습니다. 이와 같이 기억 장치 관리의 오류에서 기인하는 버그를 방지합니다.

 Java는 객체 클래스의 계승(inheri-tance) 관계를 실행할 때에 확정하는 동적 모델을 채용하였습니다. C++에서는 컴파일 시에 확정하기 때문에 상위 클래스에 새로운 기능을 추가하면 그 클래스와 계승 관계가 있는 모든 클래스를 재컴파일 해야 합니다. 자바에서는 클래스의 계승 관계를 실행할 때 확정하기 때문에, 하위의 클래스를 재컴파일 할 필요가 없습니다.

 자바로 작성한 프로그램의 원시 코드는 자바 컴파일러로 컴파일합니다. 자바 컴파일러는 바이트 코드라는 중간 코드를 생성합니다. 이 중간 코드를 자바 가상 머신이라는 소프트웨어로 해석해서 실행합니다. 이 소프트웨어를 설치한 컴퓨터라면 컴퓨터의 명령 집합 아키텍처나 운영 체계(OS)에 관계없이 같은 바이트 코드를 변경하지 않고 실행할 수 있습니다. 자바의 원시 코드를 고쳐 쓰거나 재컴파일 할 필요가 없습니다. 그렇기 때문에 자바는 기종이나 운영 체계와 무관한 응용 프로그램의 개발 도구로 각광받고 있습니다.

 자바 가상 머신의 실현 방법으로는 현재 3종류가 있습니다. 즉, 바이트 코드를 해석하여 축차적으로 실행하는 자바 해석기, 바이트 코드를 일괄적으로 2진 코드로 변환하고 실행하는 JIT 컴파일러, 바이트 코드를 고속으로 해석하여 실행하기 위한 자바 칩(마이크로프로세서)입니다.


2. Java의 특징

  • 간단(Simple)합니다.
     자바의 주된 특징은 기존의 C/C++ 언어의 문법을 기본적으로 따르고, C/C++ 언어가 갖는 전처리기, 포인터, 포인터 연산, 다중 상속, 연산자 중첩(overloading) 등 복잡하고 이해하기 난해한 특성들을 제거함으로써 기존의 프로그램 개발자들이 쉽고 간단하게 프로그램을 개발할 수 있도록 합니다.

  • 객체지향적(Object-Oriented)입니다.
     자바는 C++와는 달리 처음부터 객체지향 개념을 기반으로 하여 설계되었고, 객체지향 언어가 제공해 주어야 하는 추상화(Abstraction), 상속(Inheritance), 그리고 다형성(Polymorphism) 등과 같은 특성들을 모두 완벽하게 제공해 주고 있습니다. 또한, 자바의 이러한 객체지향적 특성은 분산 환경, 클라이언트/서버 기반 시스템이 갖는 요구사항도 만족시켜 줄 수 있습니다.

  • 높은 신뢰성(Reliability)을 가집니다.
     자바는 컴파일 시에 에러 검사를 철저하게 하고, 실행 시에 발생할 수 있는 에러에 대해서도 실행 시에 철저하게 검사를 수행함으로써 신뢰도가 높은 프로그램을 작성할 수 있도록 해 줍니다. 또한, C/C++ 프로그램 개발자들을 가장 혼란스럽게 하고, 프로그램의 치명적인 오류를 발생시킬 수 있는 포인터 및 포인터 연산을 자바에서는 사용하지 않게 함으로써, 포인터를 사용함으로써 프로그래머가 범할 수 있는 오류를 없앴다는 것입니다.

  • 보안성(Security)을 가집니다.
     자바는 분산환경에서 작동하도록 설계 되었습니다. 그러나, 자바는 자바 언어와 자바 런타임 시스템 내에 보안 기능이 내재되어 있기 때문에 보안성이 있는 프로그램을 개발할 수 있도록 해 줍니다. 이러한 특성은 자바 프로그램이 네트웍 환경에서 바이러스 등과 같은 프로그램이 파일 시스템을 파괴하려는 것을 막을 수 있도록 해 줍니다.

  • 아키텍쳐 중립적(Architecture-neutral)이고 이식성(Portable)이 높습니다.
     자바는 서로 다른 이종(Heterogeneous)의 네트워크 환경에서 분산 되어 실행될 수 있도록 설계되었습니다. 이와 같은 환경에서는 응용 프로그램들이 다양한 하드웨어 아키텍쳐 위에서 실행될 수 있어야만 합니다. 이를 위해 자바 컴파일러는 이종의 하드웨어 및 소프트웨어 플랫폼에서 효율적으로 코드를 전송하기 위해 설계된 아키텍쳐 중립적인 중간 코드인 바이트코드를 생성합니다. 이는 동일한 자바 프로그램의 자바 바이트코드가 자바 가상머신이 설치되어 있는 어떤 플랫폼에서도 실행될 수 있도록 하는 것입니다. 또한, 자바는 기본 언어 정의를 엄격하게 함으로써 효율적인 이식성을 제공해 주고 있습니다. 예를 들어, int 형과 같은 기본 데이터형의 크기를 플랫폼과 무관하게 일정하게 하고, 연산자의 기능을 확실하게 규정하고 있습니다. C 언어를 이용하여 int 형을 선언할 때, 도스에서는 16비트, 윈도우 95/98/NT 등 32비트 운영 체제 환경에서는 32비트, 유닉스에서는 32비트 등 그 플랫폼에 따라 크기가 다르지만, 자바에서는 플랫폼에 상관없이 32비트로 고정되도록 하였습니다. 이는 자바 프로그램이 실행되는 환경이 자바 가상머신으로 동일하기 때문입니다.

  • 높은 수행성능(High-performance)을 제공합니다.
     자바에서는 인터프리터가 런타임 환경을 검사할 필요 없이 실행될 수 있도록 구성하였기 때문에 뛰어난 성능을 제공해 줍니다. 쓰레기 수집기(garbage collector) 즉 메모리 관리자는 자동으로 낮은 우선순위의 백그라운드 스레드로 실행되어 메모리가 필요할 때에만 동작하도록 함으로써, 자바 가상머신에게 무리를 주지 않으면서 보다 나은 수행 성능을 제공할 수 있도록 해 줍니다. 또한, 방대한 양의 계산을 수행하는 프로그램은 계산이 많은 부분을 본래의 플랫폼에 해당하는 기계어 코드로 재작성하여 자바 프로그램과 인터페이스 할 수 있도록 하였습니다.

  • 인터프리터(Interpreter) 방식입니다.
     자바 언어로 작성된 자바 프로그램을 중간언어 형태인 자바 바이트코드로 컴파일하고, 이렇게 생성된 자바 바이트코드를 자바 인터프리터가 해석함으로써, 자바 인터프리터와 런타임 시스템이 이식(porting)된 모든 플랫폼에서 자바 바이트코드를 직접 실행할 수 있습니다.

  • 다중 스레드(Multi-thread)를 지원합니다.
     자바의 다중 스레드 기능은 동시에 많은 스레드를 실행시킬 수 있는 프로그램을 만들 수 있도록 해 줍니다. 자바는 동기화 메소드들을 기본적으로 키워드로 제공함으로써, 자바 언어 수준에서 다중 스레드를 지원해 줍니다. 자바 API에는 스레드를 지원해 주기 위한 Thread 클래스가 있으며, 자바 런타임 시스템에서는 모니터와 조건 잠금 함수를 제공해 줍니다.