자바 언어의 탄생
Green Project = 1991년 Sun사의 James Gosling에 의해 개발이 시작되어 초기에 개발된 언어를 Oak라고 함
JAVA, Hot Java Project
- 1994년, World Wide Web 등장
- Oak 에서 Java 로 명칭 변경
- Jaca, Hot Java Project 시작
Java Beta1, Beta2
- Netscape 지원 결정
- Java Beta1, beta2 발표
Java 정식버전 발표
- 1995년 1.0
...
- 2000년 java 1.3 발표, java언어 완성기
- 2004년 java 5 발표 이때부터 버전 번호 체계가 변경
- 2006년 java6 발표
자바 언어의 종류
Java 2 Platform, Standard Edition (J2SE)
- 자바의 가장 기본이 되는 Edition
- 모든 자바 프로그램은 J2SE 에서 제공되는 컴파일러와 JRE를 사용한다.
Java 2 Platform Micro Edition (J2ME)
- 모바일 장비를 위한 Edition
- 휴대폰에 가장 적합한 버전
- 개발 시 사용할 J2SE의 버전은 1.3 이나 1.4 버전이 가장 적합함
[ 일반 휴대폰 일 경우 {J2SE 사용 스마트폰} 현재 자바의 최신버전으로 개발을 하게되면 실행되는 제품이 무겁고 메모리를 많이 먹게 되는 문제가 있어서 더 낮은 버전을 이용하여 실행 환경을 구성하게 됨. ]
- LG U+ : J2ME의 라이선스를 구매해 탑제함.
- SKT : J2ME 의 상당 부분을 국내 시장에 맞게 재 프로그래밍 하여 SK-VM이라는 이름으로 사용함.
- WIPI : Java언어를 기반으로 만들어진 국내 이동통신 3사 통합 플랫폼. J2ME와 유사한 부분이 상당히 많지만 다른점도 가지고 있다.
- Android : 스마트폰 전용 운영체제, J2ME 제품 군에는 속하지 않으며, Java 기반으로 만들어진 새로운 운영체제 임.
Java @ Platform, Enterprise Edition (J2EE)
- 기업용 환경에서 서비스 하기 위한 어플리케이션을 개발할 때 사용되는 버전
- 기본 J2SE가 필요하며 최신 버전의 J2SE를 사용하는 것을 권장한다.
- 주로 Web Application Service 를 만들 때 사용되며 그 밖에 다양한 기술들을 지원한다.
- Servlet : Web Service 를 위해 제공되는 기술.
- JSP ( Java Server Page) Web Sefvice 를 위해 제공되는 기술, 복잡한 Servlet 프로그래밍을 쉽게 할 수 있도록 각종 ㄱ시술이 제공됨, 내부적으로는 Servlet 으로 변환되어 실행됨.
- EJB (Enterprise Java Beans) : Java에서 제공되는 분산 컴포넌트 기술로 비즌니스 로직이나 데이터, 메시지를 처리하는데 사용되어 진다. 전체 프로그램 내에서 작은 부품들로 생각하면 된다.
- RMI (Remote Method Invocation) : 프록시를 써서 원격에 있는 Java 객체의 메서드를 실행시키는 기술. Microsoft 의 RPC와 유사한 기능.
- JNDI (Java Naming Directory Interface) : 자바 기술로 만들어진 객체에 이름을 붙여 찾을 수 있도록 단일 인터페이스를 제공
- JDBC (Java Database Connector) : 여러 종류의 데이터베이스 시스템에 접근하는 단일 인터페이스를 제공
- JCA (Java Connector Architecture) : 서로 다른 종류의 플랫폼을 통합할 수 있도록 독립적인 인터페이스를 제공
- JMS ( Java Message Service) : 여러가지 메시징 시스템에 대한 플랫폼 독립적인 인터페이스를 제공
자바언어의 특징
단순성
- 자바는 Cm C++ 언어를 기반으로 탄생하여 기존의 개발자들에게 문법을 새로 공부하지 않고 접할 수 있다는 특징을 가지고 있다.
- 자바는 C, C++ 언어에서 사용하고 복잡한 부분을 제거하여 언어의 복잡성을 제거하였다.
preprocessor, 포인터, 다중상속, 구조체, 전역변수, goto문, 연산자 중복 등.
-Garbage Collection 을 제공하여 개발자로 하여금 메모리 고나리에 대한 부분을 개발자가 직접 하지 않아도 된다.
객체 지향
- 자바는 객체 지향 프로그래밍 기법 ( OOP : Object Oriented Programming) 을 사용한다. 개발자가 만드는 모든 프로그래밍 코드들은 자동차의 부품처럼 따로 만들어져서 하나로 조림되는 형태로 취한다. 이러한 부품 을 객체 라고 부르며 수 많은 객체들의 조합으로 하나의 프로그램이 만들어진다. 이러한 객체들은 서로 간에 독립적으로 동작하며 서로에게 명령을 주고 받을 수 있는 인터페이스를 두어 유기적으로 동작하게 한다.
네트워크를 통한 분산 환경 시스템 개발 지원
- 자바는 각종 네트워크에 관련된 라이브러리를 지원한다. 이러한 라이브러리를 통해 서버- 클라이언트 구조의 서비스 개발이 가능하다. 또한 다른 컴퓨터에 있는 객체들을 원격으로 호출하여 사용할 수 있는 기능도 지원된다.
Java Virtual Machine ( JVM )
- 자바 언어로 만들어진 프로그램은 운영체제와 직접적으로 동작하지 않고 중간에 JVM 이라는 것을 통해 실행이 된다.
C, C++로 만들어진 프로그램은 프로그램을 제품으로 만들 때 사용한 컴퓨터에서만 동작이 가능하지만, 자바는 프로그램을 실행하는 프로그램이 운영체제 별로 제공이 되고 개발자가 만든 프로그램은 이러한 JVM과의 연동을 통해 프로그램이 실행이 된다. JVM은 자바 개발 지원 사이트에서 다운로드가 가능하며 설치만 하면 된다. 이렇게 함으로써 개발자가 만든 프로그램은 서로 다른 운영체제에서도 실행이 가능하다.
플랫폼이 독립적이다.
- 기존의 프로그래밍 방식에서는 개발자가 만든 프로그램은 각 운영체제에 맞게 각각의 제품을 만들어 줘야한다. 자바는 JVM을 통해 이러한 불편함을 해소 하였다. 프로그램을 실행하기 위한 프로그램인 JVM을 각 운영체제별로 만들어 이미 제공되고 있으며 프로그램은 이러한 JVM위에서 동작을 하게 된다. 그로써 개발자는 한번 만든 프로그램을 여러 운영체제에서 실행 시킬 수 있도록 제공되어 지고 있다.
다중 쓰레딩
- 하나의 프로그램에서 여러 개의 프로세서를 사용하여 동시에 여러개의 작업을 수행 할 수 있는 환경을 제공한다.
보안성
- Applet과 같은 프로그래밍 방식을 이용하면 실행되는 프로그램의 코드들은 서버 컴퓨터에 있고 프로그램 실행시 실행에 필요한 정보를 클라이언트 프로그램을 보내어 JVM을 통해 프로그램을 실행 시킬 수 있는 환경을 제공 할 수 있다. 즉, 프로그램이 실행에 필요한 정보와 이러한 정보를 바탕으로 싱행을 시키는 JVM을 분리하여 보안성을 향상 시킬 수 있다.
요약정리
- 자바언어는 James Gosling에 의해 만들어짐
자바 버전은
J2SE
J2ME
J2EE
3가지 버전이 있다.
자바언어의 특징 : 단순성, 객체지향, 네트워크 , JVM, 플랫폼의 독립성, 다중 쓰레딩, 보안성