200 likes | 288 Views
Chap. 1 Java 소개. 자바 언어의 소개. 미 Sun Microsystems 에서 만든 객체 지향 언어임 . 문법은 c, c++ 과 유사함. 자바 언어의 소개. JDK 란 무엇인가 ? Java Development Kit 으로 자바 소프트에서 제공하는 자바 개발 도구이다 . 공식 개발 도구이지만 Visual 한 통합 개발 환경은 제공하지 않는다 . 자바 소스를 컴파일하고 실행할 수 있는 기능이 있다 . 종류 J2SE(Java 2 Standard Edition): 기본적인 자바 코어
E N D
자바 언어의 소개 • 미 Sun Microsystems 에서 만든 객체 지향 언어임. • 문법은 c, c++ 과 유사함.
자바 언어의 소개 • JDK란 무엇인가? • Java Development Kit 으로자바 소프트에서 제공하는 자바 개발 도구이다. • 공식 개발 도구이지만 Visual한 통합 개발 환경은 제공하지 않는다. • 자바 소스를 컴파일하고 실행할 수 있는 기능이 있다. • 종류 • J2SE(Java 2 Standard Edition): 기본적인 자바 코어 • J2ME(Java 2 Micro Edition): 임베디드 시스템 개발용 • J2EE(Java 2 Enterprise Edition): 엔터프라이즈 서버 프로그래밍 • 기업환경과 같은 대단위의 작업시에 필요
자바 언어의 소개 • JDK Documents • JDK의 기능 설명 및 클래스/메소드 설명이 HTML 포맷으로 제공된다. • http://java.sun.com DOWNLOAD J2SE J2SE DOCUMENTATION 을 다운받아서 사용 권장 • JRE • Java를 실행할 수 있는 환경이다. • 모든 자바 코드는 JRE 기반하에 실행되게 되어 있다 • JDK내에 JRE가 포함되어 있으며 JRE만 따로 설치할 수도 있다.
자바의 역사 • 1991년 SUN사의 James Gosling에 의해 가전제품에 내장된 프로그램을 위해 개발 • 초기 개발 언어 Oak • 1995년 자바의 태동 • 네트워크 환경에 적합한 프로그래밍 언어 필요 • 1993. Hot Java 개발 • 1995. 자바 언어 발표
자바의 특성 • 특성 • 간단(simple), 객체 지향적(Object-oriented) • 높은 신뢰성, 보안성(Secure) • 컴퓨터 구조에 중립적(Architecture-neutral) • 이식성(Portable) 좋음 • 인터프리터형 바이트코드를 한줄씩 해석하여 실행함 • 멀티스레드 지원(Multi-threaded) • 분산처리 지원(Distributed)
자바에서 중요한 용어 • Bytecode를 제공 • - 자바 소스를 compile하여 얻는 코드(확장자 *.class) • 플랫폼에 무관하게 실행될 수 있는 일종의 어셈블러 코드 • Java Virtual Machine : JVM • - 바이트코드가 실행되는 환경의 가상 운영체제임. • - 가상의 CPU와 소규모의 운영 체제를 제공
자바 프로그램의 실행 프로그램 소스 컴파일 Javac Hello.java 자바 바이트 코드 로딩 Java Hello.class 가상 머신 적재 인터프리터 *JVM* 안에서 실행 실행 가능한 코드
Java Program Java API 자바 플랫폼 자바가상기계(Java Virtual Machine) 하드웨어 플랫폼 자바 플랫폼 • 플랫폼: 일반적으로 하드웨어와 운영체제를 일컫는다. • 자바 플랫폼: 하드웨어와 무관하게 동작하는 자바 프로그램을 동작시켜 주기 위한 API 및 JVM(자바 가상 머신)을 일컫는다. • 소프트웨어[JDK]만 설치하면 된다.
자바 프로그램 형태 • 자바 프로그램 형태 • 어플리케이션(application) • 독립적인 자바 실행 프로그램 • 애플릿(applet) • 네트워크의 원격 컴퓨터에서 전송받아, 웹 브라우저나 애플릿 뷰어에서 실행 • 서블릿(servlet) • Web 서버 상에서 수행되는 java의 실행파일 • 빈즈(beans) • 자바로 만들어진 컴포넌트(component) • 컴포넌트: 독립적인 기능과 화면을 갖고 있는 실행 모듈 • 애플릿, 어플리케이션, 서블릿 등에서 부품으로 사용
애플리케이션 • 애플리케이션 (Application) • 독립적인 애플리케이션으로 동작하고, 일반 애플리케이션이 할 수 있는 모든 기능을 지원 • Windows의 경우 운영체제 내에 자바 가상 머신이 포함되어 있음 • JDK (Java Development Kit) 또는 JRE (Java Runtime Environment)를 통해서 실행가능 • 네트워크와 독립되어 동작 가능
애플릿 • 애플릿 (Applet) • HTML 문서 안에 <APPLET> 태그를 통해서 동작하는 웹 브라우저에서 동작하는 제한된 자바 프로그램 • 인터넷 익스플로러나 네스케이프 네비게이터, 자바 플러그인으로 설치된 자바 가상 머신으로 동작 • 웹 서버에 저장되어 있는 자바 바이트 코드가 웹 문서와 함께 웹 브라우저에 로딩되어 실행됨 • 웹 브라우저와 통신 기능을 제공
JDK의 통합 개발도구 • 통합 개발 도구들 • NetBean (Sun) • Jbuilder (Inprise) • Visual Age for Java (IBM) • Visual Café (Symantec) • Visual J++ (Microsoft) • 실습시 사용 개발 도구 • JDK + 에디터플러스
JDK의 각종 개발도구1(p.37) • 자바 컴파일러(javac.exe) • 확장자가 *.java인 자바 소스 파일을 *.class인 자바 바이트 코드 파일로 컴파일 해 준다. • javac HelloJava.java • 자바 인터프리터(java.exe) • 바이트코드를 해석하여 실행하여 준다. 자바 컴파일러와는 달리 확장자를 생략해야 한다. • java HelloJava • 자바 도큐먼트 생성기(javadoc.exe) • 명령행 인자로 받은 확장자가 *.java인 파일에 대해 패키지, 계층구조, 도구 등을 HTML 문서로 만들어 준다. • javadoc HelloJava.java
JDK의 각종 개발도구2 • 자바 애플릿을 보여주는 도구(appletviewer.exe) • 명령행 인자로 URL 또는 HTML 페이지 파일을 받아 HTML페이지에 포함되어 있는 애플릿만들 실행시켜 준다. 자바 애플릿을 작성할 경우 테스트용으로 많이 사용한다. • Appletviewer HelloJava.html • 자바 디버거(jdb) • 명령행 인자로 클래스 이름을 받아 디버깅을 시도한다. 디버거를 제대로 사용하려면 자바 소스를 컴파일 할 때 -g 옵션으로 컴파일 해야 한다. • javac -g HelloJava / jdb HelloJava
자바 APIs • 자바 클래스 • 클래스 이름과 메소드, 그리고 변수로 구성 • 자바 객체를 생성할 수 있는 기본 틀 • 자바 객체는 메모리에 할당되어 동작하는 살아있는 코드 • 패키지 • 관련성이 높은 클래스를 모아놓은 디렉토리 • 점으로 디렉토리를 구별 • 기본 패키지는 lang, io, net, applet, awt, util 등 6가지로 구성
기본 패키지 • 기본 6가지 • java.lang • 자바 클래스와 기본형을 포함한 자바 언어의 기본으로 import 하지 않아도 기본으로 됨 • java.io • 입출력 스트림 및 직렬화에 대한 클래스들을 제공 • java.util • 각종 자료구조나 날짜, 지역화 등을 처리하는 패키지 • java.net • 소켓이나 URL등 네트워크 연동 프로그램 제작을 위한 클래스 • java.awt • 윈도우와 그래픽 관련 클래스 제공 • java.applet • 애플릿을 만들기 위한 클래스 제공
자바 프로그램의 예1 • Hello.java (애플리케이션) public class Hello { public static void main(String args[]) { System.out.println(“Hello World”); } }
자바 프로그램의 예2 • HelloApplet.java (애플릿) –웹브라우저에서 실행 import java.applet.Applet; import java.awt.*; public class HelloApplet extends Applet { public void init() { setLayout(new BorderLayout()); add(new Button(“Hello, World”), BorderLayout.CENTER); } }
자바의 현재와 미래 • 자바 관련 웹사이트 • http://www.javasoft.com : 자바의 공식 사이트 • http://www.gamelan.com : 자바 애플릿 • Http://sunsite.unc.edu/javafag : 자바에 대한 FAQ • http://developer.javasoft.com : 자바 개발자 • Http://www.blackdown.org : 자바 리눅스