Transcript Chapter 14
자바의 출현
www
정보의 공유
월드 와이드 웹(WWW)은 유럽의
입자물리학연구소(CERN:the
European Laboratory for Particle
Physics)에서 연구 결과 및 자료
의 효율적인 공유를 목적으로
1989년 3월 Tim Berners Lee의
제안에 의해 연구가 시작되어 개
발
자바
자바는 인터넷에 가장 적합하도
록 개발된 기술
4
자바 정의
JAVA
인도네시아 섬, 커피의 대명사 등…
JAVA란 언어다
미국 Sun Microsystems사에서 개발한 객체지향 프로그래밍 언어
1995년 5월, Sun World에서 공식발표
1996년 1월, JDK1.0 발표
객체지향언어(Object Oriented Language)
60년 말 Simula 언어에서 발전
C++를 문법을 기본으로 개발
Java 이전에 객체지향언어로 가장 범용적인 언어
83년 경, AT&T연구소의 Bjarne Stroustrup(얀 스트로스트럽)이 개발
C언어에 객체지향 특성 확장
JAVA란 플랫폼이다.
서버와 핸드폰, 스마트 카드와 같이 서로 다른 여러 물리적인 플랫폼에
이식되어 운영될 수 있는 소프트웨어 플랫폼(software-only platform)
5
자바의 역사
1990년 Green Project에서 시작
Green project
http://java.sun.com/people/jag/green/index.html
양방향 TV를 만드는 제어박스 제작 프로젝트
모든 하드웨어에서 작동할 수 있도록 고안
초기에 C++채택
다양한 하드웨어를 지원하는 분산 네트웍 시스템 개발에 부족
Oak라는 언어를 직접 개발, 이를 발전시켜 Java가 개발됨
James Gosling이 개발
http://java.sun.com/people/jag
Java history
http://java.sun.com/features/1998/05/birthday.html
1995년 5월에 SunWorld95에서 HotJava와 함께 공식
발표
HotJava(웹 브라우저)와 함께 공식 발표
자바 프로그램인 애플릿이 실행되는 브라우저 HotJava
05년 현재 J2SE Development Kit 5.0
6
HotJava와 애플릿
브라우저 HotJava
http://java.sun.com/features/1997/feb/HotJavaBrowser.html
초기 애플릿이 실행되는 브라우저
애플릿
자바 언어로 만들어져 인터넷 웹브라우저에서 서비스되는 프로그램
http://java.sun.com/applets/
http://java.sun.com/openstudio/index.html
7
자바 개발도구
JDK(Java Development Kit)
자바 프로그램을 개발하기 위한 최소의 환경
자바 컴파일러, 인터프리터, 디버거 등의 개발 환경
JRE(Java Runtime Environment) : 자바 실행 환경
용어의 변화
JDK
J2SDK(Java 2 Software Development Kit)
V 1.2 이후 , 이 때부터 자바를 자바 2라 칭함
J2SE(Java 2 Standard Edition)
V 5.0(1.5) 부터
개발도구
J2SE Development Kit, 줄여서 JDK
플랫폼(개발, 실행환경)
Java 2 Platform Standard Edition, 줄여서 J2SE
8
자바 버전 발달
9
자바 통합개발환경
IDE(Integrated Development Environment)
프로그램을 개발하는데 필요한 컴파일러, 디버거, 링커, 에디터 등을
통합적으로 제공하는 개발환경
종류
Sun
SUN ONE STUDIO
마이크로소프트 사
Visual J++
Borland 사
Jbuilder
Oracle
JDeveloper
가격이 저렴하거나 무료인 개발 도구
JCreator, JPadPro, Kawa등도 많이 이용
10
개방 컨소시엄
NetBeans
Sun이 주도
넷빈 컨소시엄(netbean.org)에서 개발하는 무료 통합개발환경으로 그 소스
도 개방
테스크탑, 웹, 모바일, 무선 등 여러 플랫폼의 응용 프로그램을 개발할 수
있는 우수한 통합개발환경
현재 넷빈 IDE의 버전 4.0
Eclispe
IBM이 주도
이클립스(eclise.org) 컨소시엄이 개발하는 자바 통합개발환경이 이클립스
(Eclipse)
2001년 5월에 버전 1.0을 출시
자바 개발도구라기보다는 플러그인 개발환경(Plug-in Development
Environment)이라고 부름
이클립스는 C/C++, Java, COBOL 등의 다양한 언어와 다양한 도구를 플러
그인해 이용할 수 있는 개방형 플랫폼
현재 3.0.1
11
자바의 성공
새로운 패러다임
자바는 인터넷 시대를 위한 새로운 패러다임을 제시한 프로그래밍 언
어
정보시스템의 개발도구 및 기반 기술로 발전한 자바의 성공
원인을 다음 세 가지로 요약
인터넷 응용을 위한 이상적인 프로그램 언어
배우기 쉽고, 간편한 객체지향 언어
플랫폼에 독립적인 언어
12
Java의 특징
간편하다.(Simple)
객체지향 언어이다.(Object-oriented)
시스템에 독립적이다.(Architecture-neutral)
번역 언어이다.(Interpreted)
분산처리 언어이다.(Distributed)
강인하다.(Robust)
다중 스레드를 지원한다.(Multithreaded)
역동적이다.(Dynamic)
이식이 쉽다.(Portable)
보안이 뛰어나다.(securable)
자바는 간편한 객체지향 프로그램 언어로 시스템에 독립적인
번역 언어이다
13
특징 요약
Simple
c++의 객체지향 개념에 영향을 받아서 설계되었으나 복잡한 C++의 구문(포인터, 다중상속 등)들을 제외
Object oriented
실세계를 모델링한 객체지향언어, 함수나 변수가 아닌 클래스로부터 생성된 개체이용
Aarchitecture neutral, portable
플랫폼 독립성 (구조에 중립적인 바이트 코드 사용, 이식성 높다)
Interpreted
시스템에 따른 인터프리터를 통하여 실행
Distributed
분산 네트워크 환경에 적합 (네트워크상의 파일이나 개체를 사용하여 원격지 프로그램과 상호 동작)
Robust
실행 중 발생될 오류 처리를 위한 exception handling 제공, 포인터 사용 안함, 자동메모리관리(garbage
collection)
Multithreaded
하나의 프로그램이 동시에 여러 작업 수행
Dynamic
종속된 개체에 영향 없이 라이브러리의 개체의 수정이나 추가 용이
Secure
바이트 코드 검증 (부적절한 클래스접근, 스택의 오버플로우 , 부적절한 형 변환)
High-performance
다른 인터프리터(basic, perl)보다 빠르게 처리
14
Java의 특징
간편하다.
배우기 쉽고 간편하다
기존의 C, C++에 비해
자바가 제공하지 않는 C++ 언어의 요소
포인터 연산
구조체(struct) 와 TypeDef
전처리기(Preprocessor )
메모리 할당 후 제거의 필요
객체지향 언어이다
유연(flexible)하며 클래스를 이용한 모듈 중심의 프로그램이 가능
쉬운 유지보수(easy maintenance)
재활용(reusing code)에 유리
필요한 클래스 라이브러리 제공
기본 클래스의 확장이 용이
15
Java의 특징(계속)
시스템에 독립적이다
소스 (source) 및 이진(실행) 파일 (binary file)에서 독립적
하나의 플랫폼에서 만든 자바 프로그램은 여러 플랫폼에서 재수정 없이 실
행가능
C, C++과 같은 기존의 언어
platform dependent
자바가 생성한 바이트코드(bytecode)
platform independent
자바 가상 기계(Java Virtual Machine)
자바 바이트코드가 실행되는 가상 기계
번역 언어이다.(Interpreted)
자바는 자바 가상 기계에 의해 수행되는 번역 언어
분산처리 언어이다.(Distributed)
자바는 인터넷에 필요한 주요 프로토콜을 지원
TCP/IP, HTTP
분산처리를 지원하는 다양한 클래스를 제공
RMI(Remote Method Invocation) 기법
16
시스템(프로그램)이 실행되는
기반 환경으로 CPU, OS등에
의해 결정
자바의 특징(계속)
강인하다.(Robust)
강력한 검사 기능을 제공하여 안정적 시스템
다중 스레드를 지원한다.(Multithread)
하나의 프로그램에서 다중 스레드를 지원
스레드는 하나의 프로그램 내에서 연속되는 단일 프로그램 제어
역동적이다.(Dynamic)
자바는 실행시간에 필요한 라이브러리를 참조
이식이 쉽다.(Portable)
자바는 C언어와는 다르게 자료 유형의 크기가 모든 시스템에서 동일
보안이 뛰어나다.(Secure)
자바 가상 기계에서 실행되기 때문에 기반 플랫폼의 운영체제나 자원
에는 치명적인 문제를 방지할 수 있어 보안이 뛰어남
17
자바 기술, Java Platform
Java 2 Platform, Standard Edition (J2SE)
응용 프로그램(Applications)과 애플릿(Applets) 프로그램을 빠르게 개발, 구현
할 수 있는 해결책
자바 언어를 이용하여 프로그램을 개발하기 위한 주요 도구인 컴파일러, 실행
환경, 클래스 라이브러리 API(Application Programming Interface) 등을 제공
Java 2 Platform, Enterprise Edition (J2EE)
기업 버전은 다중계층(Multitier)의 대규모 기업 응용 시스템을 개발하기 위한 표
준 플랫폼을 제공
기업 자바빈즈 콤포넌트(Enterprise JavaBeans Component), 자바 서블릿(Java
Servlets), 자바 서버 페이지(Java Server Pages), XML (eXtended Markup
Language) 기술에 필요한 여러 자료 및 소프트웨어를 제공
Java 2 Platform, Micro Edition (J2ME)
모바일 전화기 및 PDA, TV 셋탑박스, 이동 차량에 부착된 각종 장치 및 여러 임
베디드 장치(Embedded devices)를 위한 자바 플랫폼
J2ME는 메모리 및 여러 용량이 작은 장치 및 임베디드 장치를 위한 자바 기술
을 제공
18
자바와 닷넷(.Net)
자바의 경쟁자 닷넷
“Write Once, Run Anywhere”
CIL과 Bytecode
닷넷이 작동되기 위한 환경인 닷넷 프레임워크(.Net Framework)는 자바 플랫폼
의 자바 운영 환경(JRE)이다.
닷넷의 공통 중개 언어(Common Intermediate Language) 는 자바의 바이트코
드와 대응
CLR과 JVM
CLR(Common Language Runtime)과 JVM(Java Virtual Machine)
각각 하나의 플랫폼에서 개발된 프로그램을 모든 플랫폼에서 실행할 수 있게
만드는 새로운 프로그래밍 패러다임을 가능하게 하는 공통된 새로운 기술
자바 언어와 C# 언어
2000년에 소개된 C#은 자바와 C++를 결합한 닷넷의 주력 언어
전망
Windows 플랫폼과 Unix 플랫폼이 경쟁하면서 공존하듯이 자바와 닷넷도 함께
발전
19
Java 홈페이지
URL
http://www.javasoft.com
http://java.sun.com
주 메뉴
왼쪽에는 Downloads, References, Community, News & Updates,
Learning으로 구성
오른쪽 상단에는 인기가 높은 자료를 내려 받을 수 있는 Popular
Downloads로 구성
20
JDK 다운로드
JDK와 J2SE Documentation
21
자바 문서
첫 페이지
22