[INA470] Java Programming Youn-Hee Han

Slides:



Advertisements
Similar presentations
제 1 장 자바 소개 Power Java. 프로그램이란 ? 그림 1-1. 프로그램은 작업 지시서와 같다.
Advertisements

2014 Advanced Programming Practice(1), 제 1 장 자바 소개 1.
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
프로그래밍언어론 TA 윤들녁. 소개 윤들녁 연락처 : 공대 7 호관 4 층 401 호 데이터베이스 연구실 실습 후 날짜 _ 학번.zip 으로.
제 1 장 기초 사항 어서와 Java 는 처음이지 ! IT 응용시스템공학과 김형진 교수.
.Net History. Visual Studio.Net 2002 /.Net Framework 1.0 제품의 버전 / 특징 2002 년 - Visual Studio.Net 2002 /.Net Framework 1.0 첫 통합 개발 환경 - C# 언어 등장 (C# 1.0)
Chap01 자바소개 이한출판사. Chap01 자바소개 책의 구성 Part 01 자바의 개요 Chapter 01 자바 소개 Chapter 02 자바 환경과 자바 프로그램 Part 02 객체지향과 자바언어의 기본 구조 Chapter 03 객체지향 개념 Chapter 04.
앱인벤터 기초과정 (1차시) ㈜헬로앱스 강사: 김영준 목원대학교 겸임교수.
2016 유성환 Hybrid MOBILE.
컴퓨터와 인터넷.
Chapter1 : 자바 소개 1.1 자바(JAVA) 언어의 역사 1.2 프로그래밍 언어 : 자바 1.3 플랫폼 : 자바
이 름: 정홍도 (과장) 팀 명: 개발사업팀 일 자:
컴퓨터 운영체제의 역사 손용범.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Linux/UNIX Programming
자바 언어의 이해 Understanding of Java Programming
Power Java 제3장 이클립스 사용하기.
어서와 Java는 처음이지! 제1장 기초 사항.
Power Java 제3장 이클립스 사용하기.
[INA470] Java Programming Youn-Hee Han
제1장 기초 사항 융합기술공학과 김형진 교수.
어서와 Java는 처음이지! 제1장 기초 사항 IT응용시스템공학과 김형진 교수.
자바 개요.
1장. 자바 개요.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
Power Java 제2장 자바 개발 도구.
1장 C#의 배경.
컴퓨터 기본 원리 프로그래밍 언어 C 프로그래밍 환경 C 프로그래밍 작성, 컴파일, 링크 및 실행
JSP Programming with a Workbook
Java 기초 (Java JDK 설치 및 환경설정)
Visual Basic .NET 처음 사용하기.
1. C++ 시작하기.
Power Java 제1장 자바 소개.
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
제 01 장 인터넷 프로그래밍 개요 학기 인터넷비즈니스과 강 환수 교수.
2장 JSP 개발 환경 설정 이장에서 배울 내용 : JSP 페이지를 작성하기 위한 개발환경을 설정하고, 웹 어플리케이션 개발을 위해 반드시 이해하여야 할 웹 어플리케이션 폴더 구조에 대해 학습한다. 또한 요청된 JSP 페이지가 어떠한 처리과정을 거쳐 응답이 이루어지는가에.
Wireless Java Programming
3강. JSP 맛보기 JSP 문서 작성 하기 JSP 아키텍처 Lecturer Kim Myoung-Ho Nickname 블스
AVR – ATmega103(ATMEL) Compilers & ISP
객체 지향 프로그래밍.
Method & library.
Chap 6.Assembler 유건우.
Linux/UNIX Programming
2장. JSP 프로그래밍을 위한 환경구성 제2장.
UNIX Unbounded A Beginning Approach
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
PHP 개요 및 설치 Yang-Sae Moon Department of Computer Science
Introduction to Programming Language
김 정 석 Web Programming 김 정 석
제1장 Unix란 무엇인가?.
웹디자인
자바 5.0 프로그래밍.
LabVIEW WiznTec 주임 박명대 1.
모바일 자바 프로그래밍 J2ME 개발 살펴보기 Ps lab 오민경.
Linux/UNIX Programming
Part 1 개요 Chapter 1 : 컴퓨터와 프로그램 그리고 자바 Chapter 2 : 자바의 환경
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
( Windows Service Application Debugging )
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
암호학 응용 Applied cryptography
Introduction to JSP & Servlet
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
Chapter 01 자바의 개요 자바는 최초 전자기기의 내장형 소프트웨어를 위해 개발되었으나, 최근 엔터프라이즈 응용에도 폭 넓게 활용됨 자바의 특징과 실행방법, 개발 환경 및 도구에 대해 소개.
공학도를 위한 C언어 프로그래밍실습1 -통합개발환경 사용법-
발표자 : 이지연 Programming Systems Lab.
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
자바 프로그래밍 입문 : 객체지향적 사고법 chapter 01. 자바 언어의 소개.
1장. C Language Synopsis.
JAVA 프로그래밍 16장 JNLP.
Presentation transcript:

[INA470] Java Programming Youn-Hee Han http://link.kut.ac.kr 01. 자바 소개 [INA470] Java Programming Youn-Hee Han http://link.kut.ac.kr

JAVA is Fun!!! duke Thinking in Java

1. 프로그램이란 무엇인가? Computer programs (also software programs, or just programs) are instructions for a computer. You tell a computer what to do through programs. Without programs, a computer is an empty machine. Computers do not understand human languages, so you need to use computer languages to communicate with them. Programs are written using programming languages. 1. 컴퓨터가 범용성을 가질 수 있는 근본 이유는? 2. 왜 MP3 Player는 컴퓨터에 비하여 덜 범용적인가?

2. 프로그래밍 언어 Q) 컴퓨터가 이해할 수 있는 언어는 어떤 것인가? 컴퓨터가 알아듣는 언어는 한가지이다. 즉 0과 1로 구성되어 있는 “001101110001010...”과 같은 기계어이다. Machine language is a set of primitive instructions built into every computer. The instructions are in the form of binary code, so you have to enter binary codes for various instructions. Program with native machine language is a tedious process. Moreover the programs are highly difficult to read and modify. For example, to add two numbers, you might write an instruction in binary like this:   1101101010011010

2. 프로그래밍 언어 Q) 그렇다면 인간이 기계어를 사용하면 어떤가? 기계어를 사용할 수는 있으나 이진수로 프로그램을 작성하여야 하기 때문에 아주 불편하다. 프로그래밍 언어는 자연어와 기계어 중간쯤에 위치 컴파일러가 프로그래밍 언어를 기계어로 통역 자바는 프로그래밍 언어의 일종

2. 프로그래밍 언어 [프로그래밍 언어의 분류] 기계어(machine language) 어셈블리어(assembly language) 고급 언어(high-level language): 자바, C++, C 기계어 어셈블리어 고급언어 컴퓨터 인간

2. 프로그래밍 언어 Assembly languages were developed to make programming easy. Since the computer cannot understand assembly language, however, a program called assembler is used to convert assembly language programs into machine code. For example, to add two numbers, you might write an instruction in assembly code like this: ADDF3 R1, R2, R3

3. 자바의 기초 개념 [자바란?] 패러다임(Paradigm) 등장 누가 설계하였나? 가장 최근 버전 설계 원칙 객체 지향 프로그래밍(Object-oriented) 구조적 프로그래밍(structured) 절차적 프로그래밍(imperative) 등장 1995 누가 설계하였나? Sun Microsystems, James Gosling 가장 최근 버전 Java Standard Edition 6 (1.6.0_14)  Java Standard Edition 7 설계 원칙 Static, strong, safe, nominative, manifest www.wikipedia.com참조

3. 자바의 기초 개념 [JVM (Java Virtual Machine, 자바 가상 기계)] 자바는 다양한 컴퓨터에서 동일한 모습으로 실행이 가능하다. 왜 그럴까? 바로 자바 가상 기계 때문이죠

3. 자바의 기초 개념 [Byte Code (바이트 코드)] 자바 컴파일러는 특정한 컴퓨터가 아닌 JVM을 위한 코드인 Byte Code (바이트 코드)를 생성한다.

3. 자바의 기초 개념 [자바 플랫폼] 플랫폼(platform)이란 프로그램이 실행되는 하드웨어나 소프트웨어 환경이다. API (Application Programming Interface)란 많은 유용한 기능을 제공하는 라이브러리들의 모임이다.

4. 자바의 역사 1991년에 Sun에서는 제임스 고슬링(James Gosling)를 비롯한 Green 연구팀에서는 가정용 전자 제품에 사용할 수 있는 작은 컴퓨터 언어를 설계 각종 전자 제품은 많은 종류의 CPU로 만들어지기 때문에 특정한 CPU에 의존하게 되는 단점이 있어서 일종의 가상 기계 (Virtual Machine) 개념을 고안 Green 프로젝트를 위한 더 나은 가상 기계 및 언어를 직접 만들게 되는데 이것이 바로 자바. Java라는 단어를 고안하기 전의 언어 이름은 Oak. 그러나 이미 Oak라는 프로그래밍 언어가 있다는 사실을 발견 Green 프로젝트는 Time Warner의 주문형 비디오 시스템을 개발하다가 Time Warner가 경쟁사인 실리콘 그래픽스 사를 선택하는 바람에 결국 실패 1993년, 그래픽 기반의 월드 와이드 웹(world wide web)이 발표되고 자바의 개발자들은 곧 이러한 웹 기반의 응용 프로그램에는 자바와 같은 기계 중립적인 언어가 이상적이라는 것을 발견 (참고: 애플릿 - Applet)

4. 자바의 역사 James Gosling Hot Java Early History Website: The first Java-enabled Web browser Early History Website: http://java.sun.com/features/1998/05/birthday.html James and Duke

4. 자바의 역사 [자바의 버전] Java 1.4 부터는 JCP (Java Community Process)라는 단체가 자바 언어의 스펙을 만드는 작업을 담당

5. 자바의 특징 Write Once, Run Everywhere!

5. 자바의 특징 단순하지만 강력하다. 꼭 필요로 하는 기능만을 포함시키고 복잡하고 많이 쓰이지 않는 기능은 삭제 포인터 연산, 연산자 오버로딩, 다중 상속 등의 복잡한 기능을 삭제 자동 메모리 관리 기능, 멀티 스레드, 방대한 라이브러리 제공 객체 지향적이다. 객체 지향은 지난 30년간의 연구를 통하여 그 가치를 입증한, 프로그램을 설계하는 방법론 기본 데이터 타입을 제외한 거의 모든 것이 객체로 표현 분산 환경 지원 네트워크상에서 동작되는 것을 기본으로 설계 쉽게 네트워크 관련 프로그램을 개발

5. 자바의 특징 견고하다. 오류를 만들 수 있는 원인들을 제거 (예) 포인터 개념을 삭제하였으며 컴파일시에 강력하게 데이터 타입을 검사 안전하다. 바이러스, 파일의 삭제나 수정, 데이터 파괴 작업이나 컴퓨터 오류 연산 등을 방지하면서 실행되도록 설계되었다. 컴퓨터 구조에 중립적이다. & 이식성(Portability)이 있다. 컴퓨터 구조에 중립적인 바이트 코드로 번역 이러한 바이트 코드 특성 때문에 인터넷에 연결된 서로 다른 기종의 컴퓨터에서도 자바는 실행될 수 있다. 모든 플랫폼에서 동일한 실행 결과를 생성

5. 자바의 특징 동적이다(Dynamic). 라이브러리들은 실행 파일에 영향을 끼치지 않고 자유롭게 새로운 기능들을 추가할 수 있다. 자바는 실행되기 직전에 라이브러리를 동적으로 링크하므로 실행할 때 변경된 라이브러리가 자동적으로 참조된다. 고성능이다. JVM 위에서 바이트 코드를 해석하면서 수행하기 때문에 실행 속도가 다른 언어에 비해 느린편임. JIT (Just-in-time) 컴파일러 도입 자바 코드를 기계어 레벨로 변환하는 개념 JIT의 도입으로 기존의 다른 언어와 비슷한 실행 속도를 보임

5. 자바의 특징 멀티스레딩 지원 자바는 언어 수준에서 멀티스레딩(multithreading)을 지원 멀티스레딩이란 많은 작업을 동시에 실행할 수 있음을 의미 동적이다(Dynamic). 라이브러리들은 실행 파일에 영향을 끼치지 않고 자유롭게 새로운 기능들을 추가할 수 있다. 자바는 실행되기 직전에 라이브러리를 동적으로 링크하므로 실행할 때 변경된 라이브러리가 자동적으로 참조된다. 기타 장점 비교적 배우기 쉽고 특히 C언어를 이미 학습하였다면 더욱 쉽다. 자바 웹 스타트(Java Web Start) 소프트웨어를 사용하면 제작된 응용 프로그램을 한 번의 마우스 클릭으로 실행

6. 자바의 에디션 Java SE(Standard Edition) Java EE(Enterprise Edition) Java ME(Micro Edition)

6. 자바의 에디션 [Java SE] Java SE는 데스크탑과 서버에서 자바 애플리케이션을 개발하고 실행할 수 있게 해주며 임베디드 환경(embedded environment)과 실시간 환경(real-Time environments)도 지원

6. 자바의 에디션 [Java EE] Java EE는 기업용 애플리케이션을 개발하는 데 필요한 여러 가지 도구 및 라이브러리들을 모아 놓은 것 응용 서버, 웹서버, J2EE API, 엔터프라이즈 자바 빈즈(JavaBeans) 지원, 자바 서블릿 API 와 JSP 등을 포함

6. 자바의 에디션 [Java ME] Java ME는 핸드폰, PDA, TV 셉톱박스, 프린터와 같은 모바일 기기나 다른 엠베디드 장치들에서 실행되는 애플리케이션을 위한 강인하고 유연한 환경을 제공

7. 자바로 만들 수 있는 것 자바 애플리케이션(Java application) 자바 애플릿(Java applet) 독립적으로 실행될 수 있는 일반 응용 프로그램 자바 애플릿(Java applet) 웹 브라우저 안에서 실행되는 작은 프로그램이다.

7. 자바로 만들 수 있는 것 자바 서블릿(Java servlet) 웹서버에서 동작하는 서버 모듈로서 클라이언트의 요구를 받아서 그에 대한 처리를 한 후에, 실행 결과를 HTML 문서 형태로 클라이언트 컴퓨터로 전송

7. 자바로 만들 수 있는 것 JSP (Java Server Page) HTML안에 자바 코드를 넣으면 웹페이지를 사용자와 상호작용하도록 만들 수 있다. JSP는 서버에서 실행되고 결과를 사용자에게 보여준다. JSP는 서블릿으로 변환되며 컴파일을 거쳐서 바이트 코드가 만들어진다. 이 바이트 코드가 수행된 결과를 브라우저로 보낸다.

7. 자바로 만들 수 있는 것 자바 빈즈(Java Beans)

[Appendix] Compiler & Interpreter http://richardbowles.tripod.com/durham/compilers/compiler.htm

Machine Language Machine language – A language understood by computers When programs run, machine language is used Machine languages are almost impossible for humans to understand Every operating system (OS) has its own machine language Windows Linux Macintosh Hardware Machine Language High Level Language C++ Java VB .NET

High Level Languages High Level Language - A programming language that is understandable by people This enables a programmer to write programs High level languages must be translated into machine language before running on a computer Hardware Machine Language High Level Language C++ Java VB .NET

Compilers and Interpreters There are two main ways to change programs written in a high level language to machine language: Use a compiler Use an interpreter Source Code – Code written in a programming language by a developer.

Compilers Compiler – A program that transforms code from one format to another High Level Language Machine Language Source code Windows compiler Windows code Windows Linux compiler Linux code Linux Macintosh compiler Macintosh code Macintosh

Compilers Advantages Disadvantages Programs run faster Platform dependent - Programs only work on a specific operating system. Windows Linux Macintosh Compiling a large program may take a long time

Interpreters Interpreter – a program that translates a high-level language into a low-level one, but it does it at the moment the program is run. 기계에서 수행되는 Interpreter 소프트웨어에서 고급언어를 해석하여 곧바로 수행시키는 방식 Usually, interpreters translate and execute source code. 인터프리터는 프로그램을 한 문장씩 기계어로 번역하여 수행하는 소프트웨어 Machine Language Code for Windows, Linux and Macintosh High Level Language Source Code Interpreter Windows, Linux and Macintosh

Interpreters Advantages Disadvantages There is no lengthy "compile time“ As soon as you have written a program, you can run it. more "portable", which means that the program will run on a greater variety of machines Disadvantages The interpreter program must be installed on the computer that the program will run on Slower execution You should only use services available on all platforms. Example: Windows has a cool sound library, but you can’t use it because it won’t run on Macintosh

How Does Java Work? Java uses a compiler and interpreter! You can compile the program once and run it on each platform with an interpreter Java Interpreter Source code Windows Windows Java Compiler Linux Macintosh Byte Code Linux Macintosh

How to Create a Java Program You write Java code using an editor javac MyProg.java java MyProg Java code: MyProg.java Bytecode: MyProg.class Text Editor Output You save the file with a .java extension You run the Java compiler 'javac' You execute the bytecode with the command 'java' This creates a file of bytecode with a .class extension

Use the Java Compiler to Create Byte Code Source code is compiled by a Java compiler to byte code. Byte Code A file that can run on any computer that has a Java Interpreter Filename extension: .class Compiler program: javac.exe Java Compiler Javac.exe Source Code void main () … ??this$0?!... Byte Code .java .class

Use the Java Compiler to Create Byte Code Important Details Javac.exe <filename>.java Ex: Javac HelloWorld.java A .class file is made for every class in the file. Common Errors Unable to find the Compiler - Something is wrong with your Java setup. Windows can’t find the Java compiler. Is your access to Javac.exe and Java.exe setup properly? Invalid Flag – One of the inputs are wrong. Did you include the .java extension? Are you using the right file?

Run the Byte Code Using the Java Interpreter Java Virtual Machine (JVM) – A program which interprets Java programs that have been compiled into byte-code and usually stored in a ".class" file. Interpreter performs actions Creates windows Prints Etc. Interpreter program: java.exe Byte Code Java Interpreter Java.exe ??this$0?!... .class

Run the Byte Code Using the Java Interpreter Important Details Java.exe <class name> Ex: Java HelloWorld The class name must have the correct case! Common Errors NoClassDefFoundError – The class can’t be found. Is your class in the correct directory? Are you using the correct case?