Chap01 자바소개 이한출판사
Chap01 자바소개 책의 구성 Part 01 자바의 개요 Chapter 01 자바 소개 Chapter 02 자바 환경과 자바 프로그램 Part 02 객체지향과 자바언어의 기본 구조 Chapter 03 객체지향 개념 Chapter 04 자바 기본 구조 Chapter 05 클래스 Chapter 06 JVM 과 메모리 Chapter 07 상속 Chapter 08 인터페이스와 패키지 Chapter 09 예외 처리 Chapter 10 다중 스레드
Chap01 자바소개 책의 구성 Part 03 자바 클래스 라이브러리 Chapter 11 java.lang 패키지 Chapter 12 문자열 Chapter 13 유틸리티 패키지와 컬렉션 Chapter 14 입출력 Chapter 15 네트워킹 Part 04 사용자 인터페이스와 애플릿 Chapter 16 그래피컬 사용자 인터페이스 (GUI) Chapter 17 이벤트 처리 Chapter 18 스윙 (SWING) Chapter 19 애플릿 (Applet)
Chap01 자바소개 Part 01 자바의 개요 Chapter 01 자바 소개 Chapter 02 자바 환경과 자바 프로그램
Chap01 자바소개 Section 1 : 자바 (JAVA) 언어의 탄생 Section 2 : 프로그래밍 언어 : 자바 Section 3 : 플랫폼 : 자바 Section 4 : 자바의 장점 Section 5 : 자바와 웹 (WWW)
Chap01 자바소개 1. 자바 언어의 탄생 1991 년 선사의 James Gosling 에 의해 가전제품에 이용하기 위해 개발 이 시작 (Green Project). 당시 WWW 은 별로 알려지지 않았다 초기에 개발된 언어를 Oak 라 하였으며 전자기기의 내장된 프로그램을 위 해 사용. Oak 는 별로 관심을 끌지 못하였다 1994 년 Gosling 은 Oak 를 JAVA( 커피의 속어 ) 로 다시 명명하고 당시 인 터넷에서 급격히 성장한 WWW 에 자바를 적용 결정 Hot Java 검색기 개발. 넷스케이프, 익스플로러 자바 지원
Chap01 자바소개 자바 역사 ( 요약 ) 1994 년 World Wide Web 등장 Oak 에서 Java 로 명칭변경 Java, Hot Java project 시작 1995 년 Hot Java, Java, Java context, source code 가 Web 에 공개 플랫폼 : Sun SPARC Solaris, Windows NT, Windows95, Linux Java beta1 발표 (Sun Microsystems) Netscape 지원결정 Java beta2 발표 JavaScript 발표 (Sun & Netscape) 1996 년 Java1.0 발표, Netscape2.0 Java 지원 현재 java1.5.x 사용 J2ME, J2SE, J2EE 환경 제공
Chap01 자바소개 2. 프로그래밍 언어 : 자바 Tip 자바는 네트웍 ( 인터넷 ) 환경의 전용 언어이다 ---- ( X ) 자바는 강력한 범용언어 (General Purpose Language) 이며 특히 네트웍 환경에 강한 특징을 가지고 있다 ---( O ) 자바는 프로그래밍 언어이다 (by white paper) JAVA : A simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded and dynamic language
Chap01 자바소개 자바언어의 특징 단순 (simple) 자바는 C++ 언어를 기반으로 탄생하였지만, C 나 C++ 에서 프로그래 머에게 많은 혼란을 주는 요소들을 제거 자바는 C++ 의 preprocessor, 포인터, 다중상속, 구조체, 전역변수, goto 문, 연산자 중복 등의 기능을 제외하여 언어의 복잡성을 제거 자동적인 쓰레기 수집 (garbage collection) 기능을 제공 객체지향 (Object-Oriented) 자바는 객체지향 언어이다. 자바 프로그램의 모든 요소들은 객체로 표 현된다. 객체지향은 소프트웨어의 재사용과 정보의 캡슐화 같은 많은 장점을 제공한다. 객체지향은 우리의 실 세계와 유사한 프로그램 방 식이다.
Chap01 자바소개 자바언어의 특징 분산 (Distributed) 환경에 적합 자바는 인터넷 또는 네트웍을 통하여 효율적으로 수행될 수 있도록 설 계되었다. http, ftp, tcp/ip 프로토콜 등과 연관된 라이브러리를 제공 한다. 또한 자바는 다른 컴퓨터에 있는 원격 객체들을 호출할 수 있는 RMI 기능을 제공한다.
Chap01 자바소개 인터프리터 (Interpreted) 에 의해 실행 자바는 독특한 실행 방식을 취하고 있다. 자바 소스는 자바 가상 기계 에서 실행될 수 있는 바이트 코드로 번역되며, 번역된 바이트 코드는 바이트 코드 해석기가 있는 어떠한 기종의 컴퓨터 환경에서도 실행될 수 있다. 자바언어의 특징 Tip : 자바는 compiled interpreted language (Hybrid 방식 ) Java program 바이트코드 실행결과 컴파일러 인터프리터
Chap01 자바소개 자바언어의 특징 자바는 네트웍을 통하여 자바 가상기계가 설치된 어떤 컴퓨터에서도 실행 가능 인터프리터 (Interpreted) 에 의해 실행 ( 계속 ) 소스코드 *.java 바이트코드 *.class 번역기번역기 서버 실행결과 클라이언트 ( 자바가상기계 ) 해석기해석기 실행결과 클라이언트 ( 자바가상기계 ) 해석기해석기 인터넷
Chap01 자바소개 자바언어의 특징 견고 (Robust) 하다 자바는 한번 작성되어 다양한 컴퓨터에서 실행되어야 하므로 높은 신 뢰성이 요구된다. 자바는 높은 신뢰성을 유지하기 위해 다음과 특징을 가진다. No Pointer Automatic Garbage Collection Strict Type Checking Runtime Error Processing
Chap01 자바소개 자바언어의 특징 안전 (Secure) 하다 자바는 분산 환경에서 실행될 수 있도록 개발환경과 실행환경이 분리되어 있 다. JVM 은 무결성에 대한 필수적인 검사를 수행한다. 소스코드 *.java 바이트코드 *.class 자바 컴파일러 개발환경 실행결과 클래스로더 바이트코드검증기 자바 인터프리터 자바클래스 라이브러리 JVM (Security Manager) 인터넷 실행환경
Chap01 자바소개 자바언어의 특징 구조에 중립 (Architecture neutral) 적이고 이식성 (Portable) 이 높다 자바는 자바 가상기계에서 실행되는 바이트 코드를 사용함으로써 특 정 컴퓨터에 종속되지 않는다. 자바는 한번 작성되면 JVM 이 설치된 모든 종류의 컴퓨터에서 실행할 수 있다. 자바는 언어의 문법 뿐만 아니라 시스템 종속적인 부분까지도 (int 는 항상 32 비트 등 ) 시스템 구조 중립적으로 설계되었다. 구조 중립적으로 설계된 자바는 높은 이식성을 제공한다.
Chap01 자바소개 구조에 중립 (Architecture neutral) 적이고 이식성 (Portable) 이 높다 ( 계속 ) 자바언어의 특징 개발환경 실행환경 JVM (Security Manager) 인터프리터 Sun Ultra Solaris System 인터프리터 Mac System 인터프리터 PC 호환 Window XP 자바 프로그램 바이트 코드 자바 컴파일러
Chap01 자바소개 자바언어의 특징 높은 성능 (High-performance) 바이트 코드는 인터프리터에 의해 효율적으로 수행될 수 있도록 설계 되었다. 실행의 효율성을 제공하기 위해 JIT 컴파일러 제공 ( 웹 검색기에서 제 공 ) 자바 번역기는 바이트 코드 생성시 자동 레지스터 할당과 최적화를 수 행하여 효율적인 바이트 코드를 생성한다 멀티스레드 (Multithread) 동시에 수행하여야 하는 작업들을 스레드 기술할 수 있다 자바는 스레드의 편리한 사용을 위한 라이브러리를 제공 동적 (Dynamic) 자바는 변화하는 환경에 적응되도록 설계된 언어로서, 기존의 프로그램에 영 향을 주지 않고 라이브러리에 새로운 메소드나 속성들을 추가할 수 있다. 자바는 라이브러리와의 연결을 실행시간에 수행한다.
Chap01 자바소개 3. 플랫폼 : 자바 플랫폼 : 프로그램이 실행되는 하드웨어와 소프트웨 어 환경 기존의 컴퓨터에 자바 플랫폼을 구축하기 위해서는 자바 소프트웨어 (JDK) 만 설치하면 된다. 자바 플랫폼 하드웨어 플랫폼 운영체제 (OS) 자바 API 자바 프로그램 자바 가상 기계 (JVM)
Chap01 자바소개 3. 플랫폼 : 자바 자바 가상 기계 (Java Virtual Machine) 자바 바이트 코드를 기계어로 사용하는 컴퓨터 자바 가상 기계의 구성 형태 독립형 (Standalone) 컴퓨터에서 단독으로 실행되는 자바 응용 프로그 램과 자바 가상 기계 (java.exe) 자바 지원 웹 검색기 (Java-Compatible Web Browser) 내에서 실행되 는 자바 애플릿 프로그램과 자바 가상 기계 ( 웹 검색기에 포함 ). 자바 가능 서버 (Java-Enabled Server) 에서 실행되는 자바 서블릿 (Servlet) 또는 JSP 프로그램과 자바 가상 기계 (Tomcat, JRun, Resin, JSWDK 등에 내장되어 제공되는 자바 가상 기계 )
Chap01 자바소개 3. 플랫폼 : 자바 선사에서 제공되는 자바 플랫폼의 종류
Chap01 자바소개 3. 플랫폼 : 자바 J2SE 플랫폼 : 자바 언어를 이용하여 응용프로그램, 애플릿 프로그램, 컴포넌트 등을 개발하고 실행할 수 있는 환경을 제 공 Java HotSpot Performance Engine Java Foundation Class(JFC) Java2 Security Model Java Plug-In JavaBeans Component API JDBC(Java DataBase Connectivity) Java RMI(Remote Method Invocation) Java IDL(Interface Definition Language)
Chap01 자바소개 3. 플랫폼 : 자바 J2EE 플랫폼 : J2SE 를 확장하여 구성한 자바 서버측 기술로 서, 다중 구조 (Multi-tier) 의 응용 프로그램을 개발하고 실행할 수 있는 환경을 제공 Servlets JSP(Java Server Page) EJB(Enterprise JavaBeans) JNDI(Java Naming and Directory Interface) Java IDL & CORBA RMI over IIOP Java Connector for EIS(Enterprise Information System) JDBC(Java DataBase Connectivity) Message Service Transaction Service JavaMail
Chap01 자바소개 3. 플랫폼 : 자바 J2ME 플랫폼 : 핸드폰이나 PDA 등 소형의 내장 (Embeded) 기기에서 실행될 수 있는 자바 플랫폼 J2ME 플랫폼은 KVM(Kilobytes Virtual Machine) 이라는 작은 규모 의 자바 가상 기계를 제공하고 있으며, 소규모의 기계에 적합한 API 셋 (Configuration) 과 프로파일 등으로 구성되어 있다
Chap01 자바소개 3. 플랫폼 : 자바 자바 API(Application Programming Interface) JDK 에서 제공되는 거대한 패키지 자바 개발자는 자바 API 에 미리 정의된 소프트웨어 패키지를 이용하 여 자바 프로그램을 작성
Chap01 자바소개 3. 플랫폼 : 자바 자바는 플랫폼이면서 프로그래밍 언어이다 API and Libraries Language JVM Workshop Standard Extensions Core APIs Solstice Workshop JDBC(Java Database Connectivity) HotJava Java IDL(Java Interface Definition Language) Java RMI (Java Remote Method Invocation) JavaOS JDK(Java Developer’s Kit)
Chap01 자바소개 4. 자바의 장점 빨리 배울 수 있다 적은 코드로 프로그램을 작성 할 수 있다 좋은 품질의 프로그램을 작성할 수 있다 프로그램 개발을 빨리 할 수 있다 플랫폼에 독립적인 프로그램을 작성할 수 있다 분산 소프트웨어를 쉽게 작성할 수 있다
Chap01 자바소개 5. 자바와 웹 (WWW) 자바와 웹의 공통점 웹의 클라이언트 / 서버 구조에 자바가 쉽게 적응 ( 자바의 바이트 코드가 서버에서 클라이언트로 다운되어 실행 ) 웹과 자바의 연동 형태 애플릿 (Applet) 프로그램 서블릿 (Servlet) 프로그램 JSP(Java Server Page) 웹과 연동되는 형태도 모두 자바 프로그램. 프로그램이 실행 되는 방법과 프로그램의 구성 면에서 조금씩 다르다.
Chap01 자바소개 5. 자바와 웹 (WWW) 애플릿 (Applet) 프로그램 클라이언트의 웹 검색기에서 실행되는 프로그램 작고 간단한 응용에 적합 HTML( 애플릿포함 ) 요청 애플릿 다운로드 HTML 애플릿 클라이언트 검색기에서 애플릿 실행 서버 인터넷
Chap01 자바소개 5. 자바와 웹 (WWW) 서블릿 (Servlet) 프로그램 CGI 형태의 동작 프로그램을 대체할 수 있는 프로그램 서블릿은 기존의 CGI 방법과는 달리 클라이언트의 요청에 스레드를 생성한다 CGI 에 비해 효율성이 뛰어나다 서블릿 요청 실행결과 (HTML) HTML 서블릿 클라이언트 검색기 서버 인터넷 서블릿 엔진 ( 서블릿 실행 )
Chap01 자바소개 5. 자바와 웹 (WWW) JSP(Java Server Page) 프로그램 HTML 구문 내에 자바 프로그램을 기술 : ASP 와 유사 JSP 는 서블릿으로 변환되어 실행된다 빠르고 쉽게 프로그램을 작성할 수 있다 HTML 내에 기술함으로서 디자인 부분과의 연계가 유리 HTML(JSP 포함 ) 요청 실행결과 (HTML) 클라이언트 검색기 서버 인터넷 서블릿 엔진 ( 서블릿 실행 ) JSP 엔진 (JSP 를 서블릿으로 변환 ) HTML 서블릿 (JSP 에서 변환된 서블릿 )