1. 자바 기본 용어
1-1. Java SE (Java Platform, Standard Edition)
- 자바의 표준안으로서, 자바가 어떠한 문법적인 구성을 가지는 언어인지를 정의하고 있다.
- 즉 이것은 언어 그 자체가 아닌 언어의 설계도(Specification, 명세서)에 해당한다.
- 이 설계도에 따라서 자바가 만들어진다. Java SE 19는 자바 버전 19에 대한 명세서이다(계속 발전한다).
- 이 명세서는 JCP(Java Community Process)라는 조직에 의해서 만들어진다.
1-2. JDK (Java Development Kit): 개발자를 위한 자바
- Java SE의 표준안에 따라 만들어진 구체적인 소프트웨어이다.
- 자바 프로그램을 개발하기 위해서는 반드시 이것을 다운로드하여서 설치해야 한다.
- 자바 컴파일러, 개발을 위한 각종 도구, JRE(JVM, 라이브러리, 각종 파일들) 등이 포함되어 있다.
- 설치 경로 (EX.
C:\Program Files\Java\jdk-19
) : 자바 컴파일러(javac.exe
), 자바 런처(java.exe
) 등 존재
1-3. JRE (Java Runtime Environment): 일반인을 위한 자바
- 자바로 만들어진 프로그램을 구동하기 위해서는 반드시 이것을 다운로드하여서 설치해야 한다.
- 자바 프로그램이 실제로 동작하는 데 필요한 JVM(자바 런처), 라이브러리, 각종 파일들이 포함되어 있다.
1-4. JVM (Java Virtual Machine): 자바 가상 머신
- 자바 프로그램이 실제로 구동되는 환경이다.
- 자바로 만들어진 소프트웨어는 JVM이라는 가상화된 환경에서 구동되고, 하드웨어나 운영체제에 따라서 달라질 수 있는 호환성의 문제는 각 운영체제 버전에 맞춰서 만들어진 JVM이 알아서 해결한다.
- 하나의 자바 프로그램이 어떠한 환경에서도 실행될 수 있는 것은 바로 JVM의 역할 때문이다.
1-5. JAVA 버전 종류
- JAVA SE (Standard Edition): 일반적인 데스크탑 프로그램의 개발을 위한 자바
- JAVA EE (Enterprise Edition): 기업 환경에서의 개발을 위한 자바 → 무거움 (확대판)
- JAVA ME (Micro Edition): 소형 기기(모바일 등) 환경에서의 개발을 위한 자바 → 가벼움 (축소판)
1-6. 환경 변수 설정
- 명령 프롬프트에서 실행 파일(
.exe
)을 실행시키기 위해서는 그 실행 파일이 현재 경로 혹은 환경 변수path
에 등록된 값(경로)에 존재해야 한다.
- 환경 변수란 운영체제에 등록된 정보로서, 이곳에 값(경로)이 등록된다.
- 따라서
javac.exe
와java.exe
를path
에 등록해두는 것이 편하다.
- 이를 위해, [고급 > 환경 변수 > Path]에 들어가서
C:\Program Files\Java\jdk-19\bin
을 새로 추가해준다. 이렇게 하면 이제 언제 어디서든javac.exe
와java.exe
를 실행시킬 수 있다. (JDK 버전에 따라 경로는 다를 수 있음)
2. 자바 프로그램의 실행 원리
2-1. 일반적인 프로그램의 실행 구조
- 프로그램 ▶ 운영체제 ▶ 하드웨어
- 운영체제에 매우 의존적이다. (운영체제마다 커널 코드가 다르기에, 같은 소스 코드라도 리눅스에서와 윈도우에서의 컴파일 결과가 다르다.)
- 따라서 윈도우에서 개발한 프로그램의 실행 파일은 리눅스에서 실행되지 않는다.
2-2. 자바 프로그램의 실행 구조
- 자바 프로그램 ▶ 자바 가상 머신 (JVM) ▶ 운영체제 ▶ 하드웨어
- 운영체제에 독립적이다.
- 운영체제마다 그에 맞는 JVM이 존재하며 자바 프로그램과 JVM의 통신 방식은 이미 규격화되어 있다.
- 즉, JVM은 운영체제에 의존적이지만, 자바 프로그램은 운영체제에 독립적이다.
2-3. 자바 컴파일러 (javac.exe)
- 자바 가상 머신(JVM)이 인식하고 실행할 수 있는 자바 바이트 코드를 생성해낸다.
- 즉 자바 소스 파일(
.java
)을 읽고 자바 클래스 파일(.class
)들을 만들어낸다.
2-4. 자바 런처 (java.exe)
- 자바 가상 머신(JVM) 위에서 자바 바이트 코드가 실행될 수 있도록 도와주는 프로그램이다.