220 likes | 388 Views
자바의 출현. www 정보의 공유 월드 와이드 웹 (WWW) 은 유럽의 입자물리학연구소 (CERN:the European Laboratory for Particle Physics) 에서 연구 결과 및 자료의 효율적인 공유를 목적으로 1989 년 3 월 Tim Berners Lee 의 제안에 의해 연구가 시작되어 개발 자바 자바는 인터넷에 가장 적합하도록 개발된 기술. 자바 정의. JAVA 인도네시아 섬 , 커피의 대명사 등 … JAVA 란 언어다
E N D
자바의 출현 • www • 정보의 공유 • 월드 와이드 웹(WWW)은 유럽의 입자물리학연구소(CERN:the European Laboratory for Particle Physics)에서 연구 결과 및 자료의 효율적인 공유를 목적으로 1989년 3월 Tim Berners Lee의 제안에 의해 연구가 시작되어 개발 • 자바 • 자바는 인터넷에 가장 적합하도록 개발된 기술
자바 정의 • 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)
자바의 역사 • 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
브라우저 HotJava http://java.sun.com/features/1997/feb/HotJavaBrowser.html 초기 애플릿이 실행되는 브라우저 애플릿 자바 언어로 만들어져 인터넷 웹브라우저에서 서비스되는 프로그램 http://java.sun.com/applets/ http://java.sun.com/openstudio/index.html HotJava와 애플릿
자바 개발도구 • 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
자바 통합개발환경 • IDE(Integrated Development Environment) • 프로그램을 개발하는데 필요한 컴파일러, 디버거, 링커, 에디터 등을 통합적으로 제공하는 개발환경 • 종류 • Sun • SUN ONE STUDIO • 마이크로소프트 사 • Visual J++ • Borland 사 • Jbuilder • Oracle • JDeveloper • 가격이 저렴하거나 무료인 개발 도구 • JCreator, JPadPro, Kawa등도 많이 이용
개방 컨소시엄 • 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
자바의 성공 • 새로운 패러다임 • 자바는 인터넷 시대를 위한 새로운 패러다임을 제시한 프로그래밍 언어 • 정보시스템의 개발도구 및 기반 기술로 발전한 자바의 성공 원인을 다음 세 가지로 요약 • 인터넷 응용을 위한 이상적인 프로그램 언어 • 배우기 쉽고, 간편한 객체지향 언어 • 플랫폼에 독립적인 언어
Java의 특징 • 간편하다.(Simple) • 객체지향 언어이다.(Object-oriented) • 시스템에 독립적이다.(Architecture-neutral) • 번역 언어이다.(Interpreted) • 분산처리 언어이다.(Distributed) • 강인하다.(Robust) • 다중 스레드를 지원한다.(Multithreaded) • 역동적이다.(Dynamic) • 이식이 쉽다.(Portable) • 보안이 뛰어나다.(securable) • 자바는 간편한 객체지향 프로그램 언어로 시스템에 독립적인 번역 언어이다
특징 요약 • Simple • c++의 객체지향 개념에 영향을 받아서 설계되었으나 복잡한 C++의 구문(포인터, 다중상속 등)들을 제외 • Object oriented • 실세계를 모델링한 객체지향언어, 함수나 변수가 아닌 클래스로부터 생성된 개체이용 • Aarchitecture neutral, portable • 플랫폼 독립성 (구조에 중립적인 바이트 코드 사용, 이식성 높다) • Interpreted • 시스템에 따른 인터프리터를 통하여 실행 • Distributed • 분산 네트워크 환경에 적합 (네트워크상의 파일이나 개체를 사용하여 원격지 프로그램과 상호 동작) • Robust • 실행 중 발생될 오류 처리를 위한 exception handling 제공, 포인터 사용 안함, 자동메모리관리(garbage collection) • Multithreaded • 하나의 프로그램이 동시에 여러 작업 수행 • Dynamic • 종속된 개체에 영향 없이 라이브러리의 개체의 수정이나 추가 용이 • Secure • 바이트 코드 검증 (부적절한 클래스접근, 스택의 오버플로우 , 부적절한 형 변환) • High-performance • 다른 인터프리터(basic, perl)보다 빠르게 처리
Java의 특징 • 간편하다. • 배우기 쉽고 간편하다 • 기존의 C, C++에 비해 • 자바가 제공하지 않는 C++ 언어의 요소 • 포인터 연산 • 구조체(struct) 와 TypeDef • 전처리기(Preprocessor ) • 메모리 할당 후 제거의 필요 • 객체지향 언어이다 • 유연(flexible)하며 클래스를 이용한 모듈 중심의 프로그램이 가능 • 쉬운 유지보수(easy maintenance) • 재활용(reusing code)에 유리 • 필요한 클래스 라이브러리 제공 • 기본 클래스의 확장이 용이
Java의 특징(계속) • 시스템에 독립적이다 • 소스 (source) 및 이진(실행) 파일 (binary file)에서 독립적 • 하나의 플랫폼에서 만든 자바 프로그램은 여러 플랫폼에서 재수정 없이 실행가능 • C, C++과 같은 기존의 언어 • platform dependent • 자바가 생성한 바이트코드(bytecode) • platform independent • 자바 가상 기계(Java Virtual Machine) • 자바 바이트코드가 실행되는 가상 기계 • 번역 언어이다.(Interpreted) • 자바는 자바 가상 기계에 의해 수행되는 번역 언어 • 분산처리 언어이다.(Distributed) • 자바는 인터넷에 필요한 주요 프로토콜을 지원 • TCP/IP, HTTP • 분산처리를 지원하는 다양한 클래스를 제공 • RMI(Remote Method Invocation) 기법 시스템(프로그램)이 실행되는 기반 환경으로 CPU, OS등에 의해 결정
자바의 특징(계속) • 강인하다.(Robust) • 강력한 검사 기능을 제공하여 안정적 시스템 • 다중 스레드를 지원한다.(Multithread) • 하나의 프로그램에서 다중 스레드를 지원 • 스레드는 하나의 프로그램 내에서 연속되는 단일 프로그램 제어 • 역동적이다.(Dynamic) • 자바는 실행시간에 필요한 라이브러리를 참조 • 이식이 쉽다.(Portable) • 자바는 C언어와는 다르게 자료 유형의 크기가 모든 시스템에서 동일 • 보안이 뛰어나다.(Secure) • 자바 가상 기계에서 실행되기 때문에 기반 플랫폼의 운영체제나 자원에는 치명적인 문제를 방지할 수 있어 보안이 뛰어남
자바 기술, 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는 메모리 및 여러 용량이 작은 장치 및 임베디드 장치를 위한 자바 기술을 제공
자바와 닷넷(.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 플랫폼이 경쟁하면서 공존하듯이 자바와 닷넷도 함께 발전
Java 홈페이지 • URL • http://www.javasoft.com • http://java.sun.com • 주 메뉴 • 왼쪽에는 Downloads, References, Community, News & Updates, Learning으로 구성 • 오른쪽 상단에는 인기가 높은 자료를 내려 받을 수 있는 Popular Downloads로 구성
JDK와 J2SE Documentation JDK 다운로드
자바 문서 • 첫 페이지