Java의 기본적인 3가지 특징
객체지향(object-oriented) 언어
- 프로그램의 기능을 그룹별로 나누고, 이것을 조합하여 프로그램을 작성해 나간다는 개념이다.
- Java를 사용하면 보다 복잡하고 수준 높은 프로그램을 만들 수 있다.
실행 파일 수준의 호환성
- 기존의 프로그램은 대응하는 기본 운영체제 상에만 동작한다.
- Java 프로그램은 Java VM(가상머신)이라는 실행 환경만 있으면 어디서든지 실행할 수 있다.
개발 환경이 충실
- Java 개발 툴은 웹에서 무료로 다운로드할 수 있다.
- 풍부한 기술을 포함하고 있는 라이브러리들을 표준으로 이용할 수 있어 다양한 스타일의 프로그램을 만들 수 있다.
Java로 할 수 있는 것
CUI(Character User Interface) 응용프로그램
- 명령 프롬프트나 MS-DOS 프롬프트처럼 문자 기반의 실행 환경
- CUI 환경에서 동작하는 프로그램은 많은 프로그램의 기본형이다.
GUI(Graphic User Interface) 응용프로그램
- 정해진 폰트의 글자만 보여주는 CUI 대신 윈도우처럼 그래픽으로 표시되는 실행 환경
- Java를 이용하여 윈도우즈 응용프로그램 같은 프로그램을 만들 수 있다.
Java 애플릿(Applet)
- Web 브라우저 상에서 동작하는 프로그램
- HTML 문서 안에서 애플릿을 지정하면 web 서버로부터 자동으로 다운로드되어 클라이언트의 web 브라우저 상에서 동작한다.
Java 서블릿(Servlet)
- web 서버 상에서 동작하는 Java 실행 파일
- 서버에서 동작하는 다른 형태의 프로그램에는 CGI(Common Gateway Interface)가 있는데, 이것보다 효율적이므로 사용이 증가하고 있다.
- 서버에서 실행되고, 실행한 후 web 페이지를 클라이언트에게 보내준다.
- 서버에서 실행되고, 실행한 후 web 페이지를 클라이언트에게 보내준다.
JSP(Java Server Page)
- HTML 문서와 Java 프로그램을 조합하여 동적인 web 페이지를 간단히 만들 수 있다.
- 서블릿 프로그램의 기능을 HTML 파일 내에 스크립트 형식으로 구한하는 기술
- JSP는 서버에서 서블릿으로 변환되어 실행되고 그 결과를 클라이언트에게 보내준다.
- HTML 문서 안에 Java 코드를 삽입하는 형태로 작성한다.
Java 빈즈(Java Beans)
- Java로 작성한 프로그래을 부품(컴포넌트)으로서 다루는 것이다.
- 이 부품을 조합하여 애플리케이션을 간단하게 만들 수 있다.
✨ Java VM (JVM, 자바 가상머신)
Java로 작성된 프로그램을 실행하기 위한 환경
- Java 프로그램의 실행 파일은 플랫폼에 의존하지 않는
바이트 코드
로 만들어진다.
- 바이트 코드를 기종 고유의 코드로 변환하여 실행하는 기능을 가지고 있다.
- Java VM만 있으면 기종이나
운영체제(operating sytem)에 관계없이
Java 프로그램을 실행 할 수 있다.
- Windows에는 Windows용 JVM을, Unix/Linux에는 Unix용 또는 Linux용 JVM을, Mac에는 Mac용 JVM을 설치해야 한다.
- JVM의 역할을 하는 소프트웨어를 JAVA 소프트웨어 또는
JRE
(JAVA runtime environment)라고 한다.
Java 에디션(edition)
SE(Standard Edition) - 클라이언트 지향의 기본적인 환경
- 자바의 핵심 기능을 포함하는 표준 자바 플랫폼
- 광범위한 컴퓨팅 플랫폼을 위한 안전하고 이식 가능한 고성능 애플리케이션을 개발할 수 있고 이기종 환경 전반에서 애플리케이션을 이용할 수 있게 한다.
EE(Enterprise Edition) - 서버 소프트웨어 개발을 위한 환경
- 주로 분산 환경에서 필요한 서버용 자바 플랫폼
- 엔터프라이즈 Java 컴퓨팅을 위한 업계 표준
ME(Micro Edition) - PDA나 휴대전화 등 소형기기를 위한 소프트웨어 개발환경
Java 프로그래밍의 기본적인 흐름
- Java 프로그램을 작성하기 위한 '편집기'가 필요
- 소스 프로그램을 바이트 코드로 변환하는 '컴파일러'가 필요
- 컴파일러는 'javac'라는 파일로 JDK(Java Developer Kit)에 포함되어 있다.
- 독립적으로 프로그램을 실행하기 위해서는 'java 가상머신'이 필요한데
JRE(Java runtime environment)에 포함되어 있다.
Java 소스코드 (source code) 작성
- java라는 확장자(extension name)의 텍스트 파일로 Java 문법에 따라 Java 소스코드를 작성
- *.java
컴파일(compile)
- 소스 파일을 컴파일
- 오류가 없다면 class 확장자를 갖는 파일이 생성 된다.
- *.class
가상머신에 프로그램 탑재 및 실행(execution)
📌 Java downloads
👀 Java 17 api document
자바 가상머신(JRE) 버전 확인 
자바 컴파일러(JDK) 버전 확인 
Hello.java 예제 프로그램
1) 메모장을 이용해서 다음 소스코드를 편집한 후 적당한 폴더에 Hello.java로 저장 (인코딩 UTF-8)
파일명: Hello.java
클래스명: Hello
=> 확장자를 제외한 파일명과 실행 클래스명은 대소문자까지 동일

2) 명령 프롬프트 창을 실행한 후 컴파일
명령어 | 사용법 | 사용 예 |
---|
논리디스크 이동 | 논리디스크: | d: |
폴더(디렉토리) 이동 | cd 경로(폴더)명 | cd D:\Java |

3) 컴파일 javac Hello.java

- 컴파일러가 성공적으로 컴파일하면 화면에는 아무 출력도 나오지 않는다.
- Hello.java 소스코드가 성공적으로 컴파일 되면 Hello.class 파일이 생성된다.
- class 뒤에 지정한 문자열(클래스 이름)을 사용한 class 파일이 생성된다.
- 컴파일 시에는 명령어 또는 파일의 대소문자를 구별하지 않는다.
- dir 또는 dir /b 명령을 실행해서 파일을 확인해 본다.
4) Hello.class를 실행
5) java 컴파일 시 java 소스 파일명

- java Hello라고 입력하면 화면에 Hello Java! 라고 출력된다.
- java 실행 시 '클래스 파일의 대소문자를 구별'하므로
java hello, java HELLO라고 하면 실행되지 않는다.
- 컴파일 및 실행을 연속적으로 수행하므로 편리히다.
Hanja.java 예제 프로그램


❗파일 저장 시 인코딩 UTF-8으로 했을 경우 컴파일시 에러 발생(Windows에서 ANSI를 기본으로 함)
방법1) 인코딩을 ANSI로 설정
- 파일 저장 시 인코딩을 ANSI 설정 후 저장
- 컴파일 후 실행

방법2) 컴파일러에 인코딩 옵션을 지정한 후 컴파일 및 실행

GUI(Graphic User Interface) 예제 프로그램
- GUI를 갖는 프로그램을 비주얼 프로그램이라고도 한다.
- Swing 컴포넌트(라이브러리)를 사용해서 윈도우(창)을 보이게 하는 예제
- 소스코드 파일 저장 시 인코딩을 ANSI로 저장

컴파일 및 실행 
실행 결과 