• 검색 결과가 없습니다.

자바 언어 역사

N/A
N/A
Protected

Academic year: 2022

Share " 자바 언어 역사"

Copied!
34
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)
(2)

 자바 언어 역사



썬마이크로시스템즈사(스캇 맥닐리)



패트릭 노튼(Patrick Naughton) - NeWS 프로젝트 실패

(X Windows 처럼 유닉스의 종류에 상관없이 수행되는 GUI 구현 기술 프로젝트) ( Ordered by 스티브 잡스, NeXT 사)

자바의 역사

기술 프로젝트) ( Ordered by 스티브 잡스, NeXT 사)



패트릭 노튼+제임스 고슬링(James Gosling) → Green 팀

“일반적인 가전 제품 또는 휴대용 기기(Portable devices)간의 커퓨니케이션을 가능케 해주는 기술이 없을까?” → Oa

[휴대용 장치 + 운영체계 + Oak로 작성된 Applications]

(3)



Oak 기술 완성

 FirstPerson 사 설립

 타임워너: TV 셋탑박스 (<=Oak 기술: 실패)

 1994년 웹 브라우저 탄생(네트웍, 플랫폼 독맂벅,안정적, 바이러스로 부터 안전)

 HotJava - 1995년 중반에 자바 언어가 공식적으로 발표

자바의 역사

 HotJava - 1995년 중반에 자바 언어가 공식적으로 발표



Sun 사(1999년)

 자바 언어를 이용한 데이터베이스의 연동(JDBC),

 자바 웹 서버(Java Web Server),

 자바 웹 서버에서 작동하는 서블릿(Servlet),

 하드웨어의 포팅을 위한 임베디드 자바(Embeded JAVA),

 퍼스널 자바(Personal JAVA),

 자바 가상 공간(Java Virtual Space)

(4)



자바 언어는 구현이 용이하다.



자바 언어는 객체지향(object-oriented) 언어이다.



자바 언어는 견고(robust)하다.



자바 언어는 기계 중립적(architecture-neutral)인 언어이다.

자바언어의 특징



자바 언어는 안전(secure)하다.



자바 언어는 이식성(portable)이 강하다.



자바 언어는 편리한 GUI를 제공한다.



자바 언어는 분산 처리(distributed)를 지원한다.



자바 언어는 멀티쓰레드(multi-threaded) 언어이다.



자바 언어는 동적(dynamic)인 언어이다.

(5)



제 1차: 자바 개요 및 개발 환경



제 2차: 자바는 객체 지향 언어임



제 3차: 자바 변수, 연산자, 반복 및 제어문



제 4차: 클래스



제 5차: 확장 클래스 및 인터페이스



제 6차: 패키지 및 기본 패키지

자바 강의에서 다룰 내용



제 7차: 입출력 패키지



제 8차: AWT 패키지



제 9차: 이벤트처리



제10차: 쓰레드



제11차: 애플릿(1/2)



제12차: 애플릿(2/2)



제13차: 네트워크



제14차: 데이터베이스연동

(6)

참고 자료

 자바 배움터, 안용화 저, 생능출판사

 자바 프로그래밍 입문, 한빛미디어

(7)

자바 프로그램

class Frame {

// 멤버변수 정의;

// 생성자 // 메소드 정의 }

class Buttons

 자바 프로그램은 클래스로 구성된다.

• 자바 프로그램은 클래스로 구성된다.

• 클래스는 { 로 시작해서 } 로 끝난다.

• 자바 해석기로 실행 가능한 클래스는 main() 메소드를 포함한 클래스이다.

ExecuteObject.java

클래스

class Buttons 클래스 {

// 멤버변수 정의;

// 생성자 // 메소드 정의 }

class ExecuteObject {

// 멤버변수 정의;

public static void main(String args[]){

// 지역변수 정의 // 수행문 정의 }

}

 클래스란?

• 클래스는 멤버변수, 생성자 및 메소드로 구성된다

• 따라서 클래스는 유.무형의 실체(객체)를 프로그램 으로 구현한 모듈임

•.클래스는 금형원판과 같은 동작을 하며, 클래스로 부터 수많은 객체를 생성할 수 있다.

클래스

실행클래스

(8)



애플리케이션 (Application)



일반 응용 프로그램과 유사하게 동작



프로그램 코드가 저장되어 있는 PC에서 실행



모든 자원을 사용할 수 있으므로 실행 당사자가 유의함



애플릿 (Applet)

자바 프로그램의 형태- Applet과 Application



웹 브라우저에 동작하는 프로그램



프로그램 코드는 웹 서버 저장

실행은 PC에서 웹 서버로 부터 HTML 문서와 함께 전달



HTML문서에 의해서 자동 실행



악의적인 코드로 부터 보안 장치 있음



서블릿(Sublet)



웹 서버를 통하여 서비스를 제공하는 자바의 프로그램 형태로 기존 의 CGI(Common Gateway Interface)를 대치하는 기능을 제공

(9)

Java Source code

(.java)

Web Browser

JIT Class Loader

Byte code Verifier

Java Class Libraries network

애플릿과 애플리케이션의 동작

Java Byte code

(.class) Java compiler

Web Server HTML Applet Applet

Local Computer Application Application

Java Virtual Machine

Java Interpreter

JIT

(Just-In-Time) Compiler

Runtime System

Operating System

Hardware

(10)

 애플리케이션



private으로 정의된 클래스가 아니어야 함



public static void main() 메소드를 구현

 애플릿

애플리케이션과 애플릿의 코드 작성

 애플릿



java.awt.applet.Applet 클래스로 부터 확장



init(), start(), paint(), stop(), destroy()등의 메소드를 재정의

(11)

 플랫폼



서로 다른 하드웨어나 운영체제에서 동일한 프로그램 이 거의 유사하게 동작할 수 있게 해주는 환경

 자바 플랫폼

자바 플랫폼

 자바 플랫폼



자바 언어



자바 개발 도구 (JDK)



자바 실행 환경 (JRE)

개발자 지원 사용자 지원

JDK (Java Development Kit)

JRE (Java Runtime Environment)

(12)

 자바 가상 머신



다양한 운영체제에서 동작하기 위한 방식 채택



자바 컴파일러가 생성한 바이트 코드를 실행

 컴퓨터 처리 수준에 맞는 구별

자바 플랫폼 특징

 컴퓨터 처리 수준에 맞는 구별



J2ME (Micro Edition)



처리 수준이 상대적으로 낮은 휴대폰, 웹페드, 디지털 TV 대상



J2SE (Standard Edition)



일반 데스크탑 PC 대상



J2EE (Enterprise Edition)



처리 수준이 상대적으로 높은 서버/워크스테이션 급

(13)

 윈도우 플랫폼



마이크로소프트 사에서 나온 운영체제 통칭



Windows95/98



WindowsNT/2000



WindowsXP/2003

플랫폼 이란(참조)



WindowsXP/2003



특정 회사의 제품 군으로써의 플래폼

 리눅스 플랫폼



Linux 핵심 코드를 바탕으로 한 제품들



RedHat 리눅스, Hancom 리눅스, Debian 리눅스



임베디드 리눅스, 몬타비스타 리눅스 (J2ME 정도에 해당)



핵심 코드를 공유하는 의미의 플랫폼

(14)

 바이트 코드



CPU나 운영체제와 상관없이 동일한 형태의 코드



자바 컴파일러에 의해서 생성



자바 가상 머신을 통하여 다양한 환경에서 실행



예) CA FE BA BE 00 03 00 2D 00 3E 08 00 3B

바이트 코드와 네이티브 코드



예) CA FE BA BE 00 03 00 2D 00 3E 08 00 3B

 네이티브 코드



CPU나 운영체제에 따라서 상이한 형태의 코드



각종 프로그래밍 컴파일러에 의해서 생성



해당 CPU나 운영체제에서만 실행 가능



예) 4D 5A 90 00 03 00 00 00 04 00 00 00 FF 00

 CA FE BA BE는 자바 바이트 코드임을 알려주는 매직 코드임.

(15)

 자바 코드의 실행



자바 프로그래밍



자바 컴파일러를 통해서 바이트 코드 생성





자바자바 가상가상 머신을머신을 통해서통해서 바이트바이트 코드코드 수행수행

자바 가상 머신





자바자바 가상가상 머신을머신을 통해서통해서 바이트바이트 코드코드 수행수행

 자바 가상 머신



추상적인 머신 - 실제 머신이 아님



명령어 집합, 레지스터 집합, 스택, 힙, 메소드 영역 구성



실제 네이티브 코드로 작성되어 있음



C언어, 자바 언어, 어셈블리어로 작성

 자바 언어가 포함된 것은 일부 기본 패키지의 클래스가 C언어와 연결되어 있음을 의미

(16)

Java Source code

(.java)

Java Virtual

Java Interpreter

JIT

(Just-In-Time) Compiler Class Loader

Byte code Verifier

Java Class Libraries

자바 가상 머신의 동작

Java Byte code

(.class) Java compiler

Virtual Machine

Interpreter

Compiler Runtime System

Operating System

Hardware

(17)

 객체지향 언어



1990년대 매우 중요한 이슈



1960년대 시뮬라 (Simula) 언어가 최초



GUI 환경을 구현하는데 중요한 역할 제공



객체는 데이터와 메소드로 구성

객체 지향 언어와 자바



객체는 데이터와 메소드로 구성

 객체지향 언어의 특성



단순함 – 프로그램을 쉽게 이해할 수 있음



재사용성 – 만들어 놓은 코드를 쉽게 재사용함



신속성 – 프로그램을 빠르게 제작함

자바

자바 언어는언어는 객체지향객체지향 특성을특성을 잘잘 만족하는만족하는 언어임언어임

 객체지향 언어의 특징 중 비용 절감이 가장 중요함

(18)

 배우기 쉽고 가르치기 쉬운 언어



내용은 작지만 범위는 넓다



인터프리트 방식으로 속도는 늦지만, 코드는 안정적 이다

자바 언어의 특징(1)

이다



가비지 컬렉터로 메모리 관리가 용이



다양한 환경에서 동작이 가능함

(19)

 좋은 객체지향 언어



자바 프로그램은 기본적으로 클래스 집합



C언어의 라이브러리보다 진보된 개념의 패키지 지원



클래스 상속, 캡슐화, 다형성 지원

자바 언어의 특징(2)



클래스 상속, 캡슐화, 다형성 지원

(20)

 견고한 프로그래밍 언어



엄격한 문법적인 오류를 컴파일 시 감지



예외 처리 지원으로 런타임 오류 감소



가비지 컬렉터를 통한 메모리 접근 오류 금지

자바 언어의 특징(3)



가비지 컬렉터를 통한 메모리 접근 오류 금지

 견고하다는 것은 영어로 robust하다고 한다.

이는 오류가 그만큼 줄어들었음을 의미한다

(21)

 신속하고 이식성이 있는 언어



실행 코드 수준에서 호환성이 존재 (바이트 코드)



자바 가상 머신의 이식성도 높은 편임 (IEEE754지원)

자바 언어의 특징(4)

(22)

 쓰레드 지원 언어



대부분의 언어는 쓰레드를 운영체제의 기능으로 사용



자바는 자체 쓰레드가 있기 때문에 쓰레드가 없는 환 경에서도 쓰레드 기능을 제공해야 함

자바 언어의 특징(5)

경에서도 쓰레드 기능을 제공해야 함



green thread

 자바 가상 머신 스스로 쓰레드 관리



native thread

 운영체제에서 제공하는 쓰레드 기능을 이용

(23)

 JDK 설치 및 환경 설정



JDK(Java Developer’s Kit)



공용 소프트웨어



TextPad, Kawa, CodeWarrior와 Eclipse, JCreator, JDeveloper

자바 환경 구축

JDeveloper



상용 소프트웨어



JBuilder, Java Workshop, Visual Café



JDKVersion 1.5

 http://java.sun.com/javase/downloads/index.jsp에서

‘JDK 5.0 Update 6 with Java EE’

(24)

 JDK 다운로드

자바 환경 구축

(25)

 설치 초기 화면

자바 환경 구축

(26)

자바 환경 구축

(27)

자바 환경 구축

(28)

 PATH 설정 하기



Autoexec.bat 파일



‘제어판>시스템’ 설정 도구->‘고급’ 탭 (원도우 2000 이상)

자바 환경 구축

(29)

 CLASSPATH 설정하기



클래스 라이브러리가 위치한 파일 혹은 디렉토리정보



‘환경 변수’ 설정 화면에서 새로 만들기를 클릭하 여‘ 변수 이름’에서 ‘classpath’라고 입력하고, 추 가하고자 하는 라이브러스 전체 경로를 입력

자바 환경 구축

가하고자 하는 라이브러스 전체 경로를 입력



예)

(30)

 소개



오픈 개발 프로젝트



플랫폼(Platform), JDT -자바 개발 툴, PDE - 플러그인 개발 세 개의 프로젝트로 구성



자바 기반의 개방적이고 확장성을 지닌 통합 개발 환

이클립스(Eclipse) 환경 구축



자바 기반의 개방적이고 확장성을 지닌 통합 개발 환 경



플랫폼: 소프트웨어를 만들고, 통합 소프트웨어 개발 툴을 만들고 실행하는 기반 제공



SDK:Platform, JDT - Java Development Tools, and PDE - Plug-in Development Environment



사이트: http://www.eclipse.org

(31)



다운로드 및 설치하기

 http://www.eclipse.org/downloads/



Eclipse.exe 실행



소스 코드를 편집하면서 유용하게 사용할 수 있는 여러가지 뷰 와 에디터



디버깅을 하는 데 사용하는 Debug 퍼스펙티브

이클립스(Eclipse) 환경 구축



디버깅을 하는 데 사용하는 Debug 퍼스펙티브



단위 테스트 도구인 Junit



빌드 자동화 도구인 Ant, 버전 관리 도구인 CVS 등을 편리하게 사용할 수 있도록 각종 뷰와 퍼스펙티브를 제공하고 소스 코드 를 리펙토링할 수 있는 기능까지 지원한다.



웹 프로그래밍이나 데이터베이스, EJB 등과 관련된 작업을 도와 주는 플러그인

(32)

이클립스(Eclipse) 환경 구축

(33)

 다운로드 및 설치하기



http://www.jcreator.com/download.htm

JCreator 환경 구축

(34)

 자바 언어 특징



C, 포트란, 스몰토크, 펄, C++과 같은 고급 언어



3세대 언어



C 언어와 문법적으로 유사하나 객체지향 언어임

자바 언어의 특징



C 언어와 문법적으로 유사하나 객체지향 언어임



다양한 객체지향 언어의 특성을 조합해서 개발



미국 선 마이크로시스템즈 사에서 개발



배우기 쉽고, 빠른 개발이 가능한 언어



가비지 컬렉션으로 malloc(), free()가 없음

참조

관련 문서

Label 객체 역시 버튼 객체와 같이 몇 가지 다른 종류의 생성 자 함수를 제공하고 있는데 Label 없이 생성하려는 경우 인 수 없는 Label() 생성자를 사용하고 처음부터

◦ Copy eclipse directory to Program Files. ◦ Copy eclipse directory to Program Files or

• 모든 자바 입출력 클래스는 궁극적으로 바이트단위 입출력 을

중국은 농식품 분야에 대해 상대적으로 큰 전방 참여율을 보이고 있으며, 이는 전 세계 다른 제품 생산에 중국 제품이 사용된다는

이처럼 북한은 언어 도구관에 입각하여 주체적 언어 사상과 주체적 언어 이론을 정립하고 이의 추진을 위한 언어 정책을 시행하였는데,언어 정책의 궁극적인 목적은 다음

그만큼 체력과 인내력이 중요하게

-접할 수 있는 역사 사실에 대한 자료와 정보의 제한에 비롯됨.. 역사 글쓰기의 시작과 소재.. ◆

언어 체계가 언어 사용에 의존한다면 화자가 특정 낱말이나 다른 종류의 구문과 마주치는 상대적인 빈도가 언어 체계의 본질에 영향을 미칠 것이란 결과.. -가장 고착화된