190 likes | 382 Views
JAVA. JAVA 의 소개. 김순현 tnsgus239@gmail.com 군산대학교 통계컴퓨터과학과 정보과학기술 연구실 2013. 01. 21. 목차. 자바소개 자바 개발 도구 자바 프로그램의 기초. JAVA(1/4). 프로그램 컴퓨터를 위한 작업 지시서로서 구체적으로 컴퓨터가 특정한 작업을 하기 위한 명령어들의 리스트 컴퓨터를 범용적인 기계로 만듬 명령어 (instruction):CPU 가 수행하는 기초적인 연산 프로그래밍 언어
E N D
JAVA JAVA의 소개 김순현 tnsgus239@gmail.com 군산대학교 통계컴퓨터과학과 정보과학기술 연구실 2013. 01. 21
목차 • 자바소개 • 자바 개발 도구 • 자바 프로그램의 기초 IST (Information Sciences & Technology) Laboratory
JAVA(1/4) • 프로그램 • 컴퓨터를 위한 작업 지시서로서 구체적으로 컴퓨터가 특정한 작업을 하기 위한 명령어들의 리스트 • 컴퓨터를 범용적인 기계로 만듬 • 명령어(instruction):CPU가 수행하는 기초적인 연산 • 프로그래밍 언어 • 인간이 보다 쉽게 지시를 내리기 위하여 프로그래밍 언어들이 만들어짐 • 컴퓨터는 이진수인 기계어만 이해 • 소스 코드: 프로그래밍언어를 사용하여 원하는 작업을 텍스트로 기술한 것 • 소스 파일: 소스 코드가 파일에 저장된 것 • 오브젝트 파일: 컴파일러가 소스 파일을 기계어로 변환하여서 저장하는 파일 IST (Information Sciences & Technology) Laboratory
JAVA(2/4) • 자바의 기초 개념 • 자바는 다양한 컴퓨터에서 실행이 가능 • 자바 컴파일러는 특정 컴퓨터를 위한 코드를 바로 생성하지 않음 • 바이트 코드: 가상적인 기계를 위한 코드 • 자바 가상 기계: 바이트 코드를 다양한 운영 체제에서 변경없이 실행하게 함 • 자바 플랫폼 • 플랫폼: 프로그램이 실행되는 하드웨어나 소프트웨어 환경 • 자바 가상기계(JVM: Java Virtual Machine) • 자바 응용 프로그래밍 인터페이스 (API: Application Programming Interface): 많은 유용한 기능을 제공하는 라이브러리들의 모임 • 자바의 역사 • SUN의 제임스고슬링을 비롯한 Green연구팀이 가정용 전자제품에 사용할 수 있는 컴퓨터 언어를 설계하다가 만들어짐 IST (Information Sciences & Technology) Laboratory
JAVA(3/4) • 자바의 특징 • 단순: C++에서 시작했지만 복잡하고 별로 쓰이지 않는 기능을 삭제 • 객체 지향 : 객체 별로 코드를 작성하고 객체들을 조합하여 프로그램을 설계 • 견고: 오류를 만드는 원인을 제거 ex)포인터 • 안전: 바이러스, 파일의 삭제나 수정, 데이터 파괴 작업, 컴퓨터오류연산 등을 방지하면서 실행되도록 설계 • 컴퓨터 구조에 중립적: 자바 컴파일러는 컴퓨터 구조에 중립적인 바이트 코드로 번역 됨 • 이식 가능: 하드웨어 구조, 운영체제, 윈도우 시스템에 독립적인 바이트 코드 사용 • 고성능: JIT 컴파일러를 사용해서 성능이 향상됨 • JIT 컴파일러: 자바 코드를 실제 컴퓨터의 기계어로 직접 변환, 인터프리트과정없이 직접실행 가능 • 멀티 스레드 지원: 많은 작업을 동시에 하므로 효율적임 • 동적: 동적으로 변화하는 환경에 적응하도록 설계 • 분산 환경 지원 IST (Information Sciences & Technology) Laboratory
JAVA(4/4) • 자바의 에디션 • Java SE: 자바 언어의 핵심 기능을 제공 • Java EE: 기업용 애플리케이션 개발 사용, Java SE 플랫폼 상에 구축 • Java ME: 모바일 기기나 임베디드 장치를 위한 강인하고 유연한 환경을 제공 • Java FX: 개발자들이 더 쉽게 리치-인터넷-애플리케이션(RIA)을 생성하고 배포하기 위한 자바 클라이언트 플랫폼 • 자바로 만들 수 있는 것 • 자바 애플리케이션: 독립적으로 실행될 수 있는 응용 프로그램 • 자바 애플릿: 웹 브라우저 안에서 실행되는 프로그램 • 자바 서블릿: 웹 서버에서 동작하는 서버 모듈 • JSP: HTML안에 자바 코드를 넣어 웹페이지를 사용자와 상호작용하도록 만듬 • 자바 빈즈: 자바로 작성된 컴포넌트 • 안드로이드 애플리케이션 IST (Information Sciences & Technology) Laboratory
자바 개발 도구(1/4) • JDK(자바 개발 도구)설치 • 자바 프로그램을 개발하기 위해서는 자바 언어를 컴파일 할 수 있는 컴파일러가 있어야 함 • 일반적으로 컴파일러와 디버깅 도구, 각종 유틸리티 등의 개발 관련 프로그램을 개발도구라 함 • java.sun.com에서 무료로 다운로드 가능 • JDK와 JRE의 차이 • JRE(Java Runtime Environment) • JRE는 자바 프로그램을 실행하기 위한 라이브러리, 자바가상기계,기타 컴포넌트들을 제공, 자바 프로그램을 단순히 실행만 하고 개발은 하지 않는 일반인들을 위한 환경 • JDK(Java Development Kit) • JDK는 JRE에 추가로 자바 프로그램을 개발하는데 필요한 컴파일러, 디버거와 같은 명령어행 개발 도구를 추가한 것, JDK안에 JRE가 포함 IST (Information Sciences & Technology) Laboratory
자바 개발 도구(2/4) • JDK의 폴더 • src.zip 파일 : 자바 핵심 API를 이루는 클래스 라이브러리 소스 IST (Information Sciences & Technology) Laboratory
자바 개발 도구(3/4) 에디터 Hello.java 컴파일러 Hello.class 클래스 적재기 메인메모리 바이트 코드 검증기 자바 가상 기계 • 자바 프로그램 개발 단계 • 소스 파일의 생성 • 에디터를 사용하여소스 코드를 입력하여파일에 저장 • 파일은 .java 확장자 • 컴파일 • 소스 파일을 자바 컴파일러로 컴파일 실행 • 소스코드를 바이트 코드로 변환 • 바이트 코드는 .class 확장자 • 클래스 파일이라 함 • 클래스 적재 • 클래스 적재기는 프로그램의 바이트 코드가 들어 있는 클래스 파일을 메모리로 적재하고 실행 도중에 필요한 다른 클래스 파일도 함께 적재 IST (Information Sciences & Technology) Laboratory
자바개발 도구(4/4) • 클래스 파일은 로컬 컴퓨터의 디스크에서 적재될 수도 있지만 네트워크를 통하여 적재될 수도 있음 • 바이트 코드 검증 • 바이트 코드들이 이상이 없으며 자바의 보안 규칙을 위배하지 않는지를 검사 • 실행 • 자바 가상 기계(JVM)가 바이트 코드를 실행 IST (Information Sciences & Technology) Laboratory
자바 프로그래밍 기초(1/8) • 클래스의정의 • 자바 프로그램은 클래스들의 모임으로 구성 • 객체 지향 언어에서는 프로그램 개발의 단위가 클래스 • 필요한 클래스를 하나씩 만들어감으로써 전체 프로그램을 완성 • 메소드 • 프로그램이 해야 하는 작업을 적어놓는 곳 • 안에 있는 문장들을 차례대로 실행한 후에 작업의 결과를 외부로 반환함 IST (Information Sciences & Technology) Laboratory
자바 프로그래밍의 기초(2/8) • main()메소드 • 자바 프로그램의 실행이 시작 • 문장 • 사용자가 컴퓨터에서 작업을 지시하는 단위 • 프로그램을 이루는 가장 기본적인 단위 • 메소드 안에 포함 • 보통 프로그램의 한 줄이 하나의 문장이 되며 문장의 끝은 항상 세미콜론(;)으로 끝남 • 문장은 차례대로 실행 • 변수 • 프로그램이 사용하는 데이터를 일시적으로 저장할 목적으로 사용하는 메모리 공간 • 어떤 데이터를 저장하느냐에 따라 여러 가지 타입이 있음 • 변수를 구분하기 위해 각각 자신만의 이름을 가짐 IST (Information Sciences & Technology) Laboratory
자바 프로그램의 기초(3/8) • 상수 • 값이 프로그램이 실행하는 동안 변하지 않는 수 또는 변경 불가능한 수 • 변수와 반대되는 개념 • 주석문 • 소스의 설명을 적어놓은 곳으로 컴파일러는 무시함 • /* text */ • // text : 줄의 끝까지 무시 됨 • /** documentation */ : 선언문 앞에서만 사용 • 수식 • 변수, 상수, 연산자 등으로 구성 • 수식은 항상 결과값을 가짐 IST (Information Sciences & Technology) Laboratory
자바 프로그램의 기초(4/8) IST (Information Sciences & Technology) Laboratory
자바 프로그램의 기초(5/8) • 대입연산 • “=“ 연산자 • 우변의 값을 좌변의 변수에 저장 • 산술연산 • 사칙 연산자는 두 개의 피연산자를 가지기 때문에 이항 연산자라고 불림 • 산술 연산자 IST (Information Sciences & Technology) Laboratory
자바 프로그램의 기초(6/8) • import 문장 • import java.util.Scanner; //Scanner 클래스 포함 • 입력 기능을 가지고 있는 클래스를 포함시키는 문장 • 자바 클래스 라이브러리에 있는 클래스 • 객체생성 • Scanner input = new Scanner (System.in); • 변수를선언하면서 초기화하는 문장 • 사용자로부터 입력 • x = input.nextInt(); // 사용자로부터 첫 번째 정수를 읽음 • Scanner 객체인 input을이용하여 사용자로부터 정수를 읽어 들이는 문장 • nextInt() 메소드는 사용자로부터 정수를 입력 받아서 변수 x에 대입 • 실수는 nextDouble() 사용 IST (Information Sciences & Technology) Laboratory
자바 프로그램의 기초(7/8) IST (Information Sciences & Technology) Laboratory
자바프로그램의 기초(8/8) • 오류 • 컴파일 오류(compile-error) • 컴파일 시에 발견되는 오류 • 구문오류: 문법 규칙에 따르지 않는 문장을 발견하면 표시 • 의미오류: 계산식에서 호환이 되지 않는 서로 다른 타입의 데이터가 포함된 계산을 시도하는 경우 • 컴파일 오류가 발생하면 클래스 파일이 만들어지지 않음 • 실행 오류(run-time error) • 프로그램이실행되는 도중에 발생되는 오류 • 오류가 발생하면 프로그램이 비정상적으로 종료 • 자바에서는 많은 실행오류들이 예외를 사용하여 처리 됨 • 논리 오류(logical error) • 컴파일 되고 실행도 되지만 의도하지 않은 결과를 발생하는 경우 • 결함을 찾고 고치는 디버깅이 필요 IST (Information Sciences & Technology) Laboratory
감사합니다 Yang_ka@kunsan.ac.kr 군산대학교 정보통계학과 정보과학기술 연구실 2012.01.03 김순현 tnsgus239@gmail.com 군산대학교 통계컴퓨터과학과 정보과학기술 연구실 2013.01.21