티스토리 뷰
첫 시간인 만큼 이번 시간에는 이클립스를 사용하기 전에 기본적으로 짚고 넘어가야 할 개념적인 부분을 배워보자.
JDK 와 JRE 그리고 JVM
JDK 는 Java Development Kit 의 약자로, JAVA Code를 컴파일하는 컴파일러와 개발을 하는 데 있어서 필요한 도구를 가지고 있으며, JRE를 포함한다. (for 개발자)
JRE 는 Java Runtime Environment 의 약자로 JAVA가 실제로 동작하는데 필요한 JVM을 비롯한 각종 라이브러리, 파일들을 포함하고 있다. (for 일반인)
JVM 은 Java Virtual Machine 의 약자로 JAVA가 실제로 구동하는 환경이다. 자바로 만들어진 소프트웨어는 JVM이라는 가상화된 환경에서 구동되고, 하드웨어나 운영체제에 따라서 달라질 수 있는 호환성의 문제는 운영체제 버전에 따라서 만들어진 JVM이 알아서 해결한다. 즉 하나의 자바 프로그램을 만들면 어떤 환경에서도 실행할 수 있는 것이 바로 JVM의 역할이라고 할 수 있다.

Hello world !
그렇다면 이번에는 JAVA file이 Compile되고 실행되는 과정에 대해서 간략하게 살펴보도록 하자.
가령, 우리가 아래와 같은 java Code를 작성했다고 하자.
class Helloworld {
public static void main(String[] args){
System.out.println("Hello world");
}
}
이 code의 "Hello world"를 제외한 복잡한 부분은 다음 시간에 언급하도록 한다.
이 Code는 사람이 이해할 수 있는 단지 'CODE' 일 뿐이다. 따라서 이것을 컴퓨터가 이해할 수 있는 언어로 바꿔주어야 한다. 이 과정을 Compile 이라고 하며 이 작업을 수행하는 Software를 Compiler라고 부른다. JAVA에서 이러한 역할을 하는 녀석이 javac 라는 녀석이다.
다음으로 javac에 의해서 Complie된 file은 class라는 확장자명을 갖게 된다. 이것은 C, C++에서의 exe file과 같다고 보면 된다. 어쨌든 이제 이 class file을 실행시킬 수 있도록 launcher라고 불리는 java를 이용하여 실행시키면 된다.

이제 실제로 cmd를 이용하여 Hello world를 출력해보자.
필자는 이번 절의 서두에 적어두었던 Code를 Helloworld.java라는 파일명으로 e드라이브의 JAVA 폴더에 저장해두었다.
E:\JAVA>dir/w
E 드라이브의 볼륨: 새 볼륨
볼륨 일련 번호: EA54-B197
E:\JAVA 디렉터리
[.] [..] Helloworld.java
1개 파일 117 바이트
2개 디렉터리 440,551,464,960 바이트 남음
JAVA directory안에 Helloworld.java file이 덩그러니 있는 것을 볼 수 있다. 이제 javac를 이용해서 Compile을 해보자.
E:\JAVA>javac Helloworld.java
E:\JAVA>dir/w
E 드라이브의 볼륨: 새 볼륨
볼륨 일련 번호: EA54-B197
E:\JAVA 디렉터리
[.] [..] Helloworld.class Helloworld.java
2개 파일 542 바이트
2개 디렉터리 440,551,464,960 바이트 남음
Compile한 뒤에 다시 directory를 확인해보니 Helloworld.class가 생성된 것을 볼 수 있다. 이제 실행시켜보자!
E:\JAVA>java Helloworld
Hello world
정상적으로 Hello world가 출력된 모습을 볼 수 있다. 참고로 실행 단계에서는 .class의 확장자명은 적지 않는다.
이렇게 JAVA에서 기본적으로 어떤 과정을 통해서 실행되는지 살펴보았다.
다음 시간에는 이클립스를 이용한 더 효율적인 JAVA Coding을 알아보도록 하자.

'프로그래밍 > Java 기초' 카테고리의 다른 글
| Java (6), 형 변환 (0) | 2020.03.31 |
|---|---|
| Java (5), Data Type (0) | 2020.02.12 |
| Java (4), 변수 (0) | 2020.02.12 |
| Java (3), 숫자와 문자열 (0) | 2020.01.31 |
| Java (2), Eclipse와 프로젝트 생성하기 (0) | 2020.01.23 |