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