자바 프로그래밍 입문 : 객체지향적 사고법

22
K M J 자자 자자자자자 자자 : 자자자자자 자자자 chapter 01. 자자 자자자 자자

Upload: connley-bogue

Post on 01-Jan-2016

63 views

Category:

Documents


9 download

DESCRIPTION

자바 프로그래밍 입문 : 객체지향적 사고법. chapter 01. 자바 언어의 소개. 학습목표. 자바 언어의 특징 자바 프로그램의 종류 자바 언어와 다른 언어의 차이점 자바 플랫폼과 자바 가상 머신 이해 객체지향 언어로 자바 언어가 적합한 이유 이해. 자바 소개. 자바 언어 C, 포트란 , 스몰토크 , 펄 , C++ 과 같은 고급언어 3 세대 언어 C 언어와 문법적으로 유사하나 객체지향 언어임 다양한 객체지향 언어의 특성을 조합해서 개발 미국 썬마이크로시스템즈 사에서 개발 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J

자바 프로그래밍 입문 : 객체지향적 사고법

chapter 01.

자바 언어의 소개

Page 2: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J

자바 언어의 특징 자바 프로그램의 종류 자바 언어와 다른 언어의 차이점 자바 플랫폼과 자바 가상 머신 이해 객체지향 언어로 자바 언어가 적합한

이유 이해

학습목표

22 동의대 김미진동의대 김미진

Page 3: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J

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

고급언어 3 세대 언어 C 언어와 문법적으로 유사하나 객체지향 언어임 다양한 객체지향 언어의 특성을 조합해서 개발 미국 썬마이크로시스템즈 사에서 개발 배우기 쉽고 , 빠른 개발이 가능한 언어

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

자바 소개

33 동의대 김미진동의대 김미진

Page 4: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J 자바 프로그램의 형태 – Applet` 과 `Application

애플릿 (Applet) 웹 브라우저에 동작하는 프로그램 프로그램 코드는 웹 서버 저장

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

HTML 문서에 의해서 자동 실행 악의적인 코드로 부터 보안 장치 있음

애플리케이션 (Application) 일반 응용 프로그램과 유사하게 동작 프로그램 코드가 저장되어 있는 PC 에서 실행 모든 자원을 사용할 수 있으므로 실행 당사자가

유의함

* 자바 프로그램은 일반적으로 JAR 압축 파일 형태로 제공

44 동의대 김미진동의대 김미진

Page 5: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J애플릿과 애플리케이션의 동작

55 동의대 김미진동의대 김미진

JavaSource code

(.java)

JavaByte code(.class)

Javacompiler

Web ServerHTMLAppletApplet

WebBrowser

LocalComputerApplicationApplication

JavaVirtual

Machine

network

Page 6: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J자바 플랫폼

플랫폼 서로 다른 하드웨어나 운영체제에서 동일한

프로그램이 거의 유사하게 동작할 수 있게 해주는 환경

자바 플랫폼 자바 언어 자바 개발 도구 (JDK) 자바 실행 환경 (JRE)

개발자 지원

사용자 지원

JDK (Java Development Kit)JRE (Java Runtime Environment)

JRE 는 일반 사용자를 위하여 JDK 에서 컴파일러와 디버거를 삭제하여 단순화 시킨 것66 동의대 김미진동의대 김미진

Page 7: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J

동의대 김미진동의대 김미진77

플랫폼 : 프로그램이 실행되는 하드웨어와 소프트웨어 환경 기존의 컴퓨터에 자바 플랫폼을 구축하기 위해서는 자바

소프트웨어 (JDK) 만 설치하면 된다 .

자바 프로그램

자바 API

자바 가상 기계

하드웨어 플랫폼

자바플랫폼

자바 플랫폼

Page 8: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J

동의대 김미진동의대 김미진88

자바 가상 기계 (Java Virtual Machine) 바이트 코드를 기계어로 사용하는 컴퓨터 JDK 환경을 구축하여 자바 가상기계 설치 바이트 코드를 해석하여 실행할 수 있는 해석기

JDK 의 인터프리터 (java) 또는 애플릿뷰어 (appletviewer) WWW 검색기 ( 넷스케이프 , 익스플로러 , 핫자바 등 ) 에서 제공

자 바 API(Application Programming Interface)

JDK 에서 제공되는 거대한 패키지 자바 개발자는 자바 API 에 미리 정의된 소프트웨어 패키지를

이용하여 자바 프로그램을 작성

자바 플랫폼 특징

Page 9: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J자바 플랫폼 특징

컴퓨터 처리 수준에 맞는 구별 J2ME (Micro Edition)

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

J2SE (Standard Edition) 일반 데스크탑 PC 대상

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

이번 강의는 J2SE 에 맞춰져 있으며 , 휴대폰에서는 J2ME 를 많이 사용함 단 , 국내에서는 자바 언어와 C 언어를 함께 지원하는 WIPI 를 적용하기 시작함

99 동의대 김미진동의대 김미진

Page 10: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J바이트 코드와 네이티브 코드

바이트 코드 CPU 나 운영체제와 상관없이 동일한 형태의 코드 자바 컴파일러에 의해서 생성 자바 가상 머신을 통하여 다양한 환경에서 실행

예 ) 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 는 자바 바이트 코드임을 알려주는 매직 코드임 .1010 동의대 김미진동의대 김미진

Page 11: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J자바 가상 머신

자바 코드의 실행 자바 프로그래밍 자바 컴파일러를 통해서 바이트 코드 생성 자바 가상 머신을 통해서 바이트 코드 수행자바 가상 머신을 통해서 바이트 코드 수행

자바 가상 머신 추상적인 머신 - 실제 머신이 아님 명령어 집합 , 레지스터 집합 , 스택 , 힙 , 메소드

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

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

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

1111 동의대 김미진동의대 김미진

Page 12: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J자바 가상 머신의 동작

J avaSource code

(.java)

J avaByte code(.class)

J avacompiler

J avaVirtualMachine

J avaInterpreter

J IT(J ust-In-Time)

Compiler

Runtime System

Class LoaderByte codeVerifier

J ava ClassLibraries

Operating System

Hardware

1212 동의대 김미진동의대 김미진

Page 13: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J객체지향 언어와 자바

객체지향 언어 1990년대 매우 중요한 이슈 1960년대 시뮬라 (Simula) 언어가 최초 GUI 환경을 구현하는데 중요한 역할 제공 객체는 데이터와 메소드로 구성

객체지향 언어의 특성 단순함 – 프로그램을 쉽게 이해할 수 있음 재사용성 – 만들어 놓은 코드를 쉽게 재사용함 신속성 – 프로그램을 빠르게 제작함

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

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

1313 동의대 김미진동의대 김미진

Page 14: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J자바 언어의 특징 [1]

배우기 쉽고 가르치기 쉬운 언어 내용은 작지만 범위는 넓다 인터프리트 방식으로 속도는 늦지만 ,

코드는 안정적이다 가비지 컬렉터로 메모리 관리가 용이 다양한 환경에서 동작이 가능함

1414 동의대 김미진동의대 김미진

Page 15: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J

동의대 김미진동의대 김미진1515

소스코드*.java

서버

클라이언트 ( 자바가상기계 )

인터넷번역기

해석기

실행결과

실행결과해석기

바이트 코드*.class

자바는 네트웍을 통하여 자바 가상기계가 설치된 어떤 컴퓨터에서도실행 가능

자바 언어의 특징 [1-1]

Page 16: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J자바 언어의 특징 [2]

좋은 객체지향 언어 자바 프로그램은 기본적으로 클래스 집합 C 언어의 라이브러리보다 진보된 개념의

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

1616 동의대 김미진동의대 김미진

Page 17: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J자바 언어의 특징 [3]

견고한 프로그래밍 언어 엄격한 문법적인 오류를 컴파일 시 감지 예외 처리 지원으로 런타임 오류 감소 가비지 컬렉터를 통한 메모리 접근 오류 금지

견고하다는 것은 영어로 robust 하다고 한다 . 이는 오류가 그만큼 줄어들었음을 의미한다

1717 동의대 김미진동의대 김미진

Page 18: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J

동의대 김미진동의대 김미진1818

자바 소스코드*.java

자바 컴파일러

바이트 코드*.class

클래스 로더

바이트 코드 검증기

자바인터프리터

실행시 서버로 부터 네트웍을 통해 전달

자바 클래스라이브러리

개발환경 실행환경

JVM

실행결과

자바 언어의 특징 [3-1]

안전한 프로그래밍 언어

Page 19: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J자바 언어의 특징 [4]

신속하고 이식성이 있는 언어 실행 코드 수준에서 호환성이 존재 ( 바이트 코

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

원 )

1919 동의대 김미진동의대 김미진

컴파일러 바이트 코드자바 프로그램

인터프리터 인터프리터 인터프리터

Sun Ultra Solaris Mac 시스템 PC 호환 System Windows NT

Page 20: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J자바 언어의 특징 [5]

쓰레드 지원 언어 대부분의 언어는 쓰레드를 운영체제의

기능으로 사용 자바는 자체 쓰레드가 있기 때문에 쓰레드가

없는 환경에서도 쓰레드 기능을 제공해야 함 green thread

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

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

2020 동의대 김미진동의대 김미진

Page 21: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J요약

자바 프로그래밍 언어 자바 플랫폼 자바 가상 머신 객체지향 언어 자바 언어의 특징

2121 동의대 김미진동의대 김미진

Page 22: 자바 프로그래밍 입문  : 객체지향적 사고법

K M J