📌JVM이란?
JVM이란 Java Virtual Machine(자바 가상 기계)의 약자로, 자바 프로그램을 실행하기 위해 개발자가 작성한 코드를 컴퓨터 언어로 번역하기 위한 일종의 번역기입니다.
우리가 자바 언어로 코드를 작성한 것이 바로 실행되면 좋겠지만, 컴퓨터는 0과 1밖에 이해하지 못하기 때문에 우리가 작성한 파일을 0과 1로 이루어진 컴퓨터 언어로 변환한 후 실행하는 과정이 필요합니다.
따라서 자바 프로그램의 실행 과정을 살펴보면서 JVM이 무엇인지 한번 알아보겠습니다.
📌자바 프로그램의 실행과정과 JVM
개발자가 자바언어를 사용하여 코드를 작성하면 .java 확장자를 가진 자바 소스 파일이 생성됩니다.
설명의 편의를 위해 'HelloWorld'라는 이름의 파일을 작성하였다고 가정하겠습니다.
우리가 만든 HelloWorld.java 파일이 바로 실행되었으면 좋겠지만, 컴퓨터는 인간의 언어를 이해할 수 없기 때문에 컴퓨터 언어로 번역하는 작업이 필요합니다.
.java 파일을 컴퓨터 언어로 번역하기 위해서는 먼저, 컴퓨터 언어와 가까운 .class 파일로 변환하는 중간 작업을 거쳐야 합니다. 이 작업을 컴파일이라고 합니다.
💡컴파일: 소스 코드(.java)를 기계어와 가까운 바이트 코드(.class)로 변환하는 과정 |
자바에서는 javac(자바 컴파일러) 명령어를 실행함으로써 .java 파일이 .class 파일로 변환됩니다.
이 변환된 .class파일을 바이트코드 파일이라고 합니다.
소스 파일(.java)을 바이트코드 파일(.class)로 바꿈으로써 한층 기계어와 가까워 졌지만, 0과 1밖에 인식하지 못하는 컴퓨터는 아직 이 파일을 이해하지 못합니다.
따라서 이 .class 파일을 다시 0과 1로 이루어진 기계어로 바꿔주는 것이 바로 JVM의 역할입니다.
바이트 코드 파일(.class)까지 변환된 파일은 java명령어를 통해 JVM을 호출하여 기계어로 변환할 수 있습니다. 이렇게 JVM을 통해서 기계어로 변환된 후에야 프로그램이 실행될 수 있습니다.
📌JVM의 특징과 장점
JVM은 각 운영체제에 맞춰 구현되어 있습니다.
윈도우면 윈도우, 리눅스면 리눅스 macOS면 macOS, 각각의 OS에 맞는 JVM이 존재합니다.
따라서 운영체제에 구애받지 않고 어디서든 자바 언어로 개발할 수 있습니다.
또한 윈도우에서 개발한 자바 프로그램을 리눅스에서도 실행할 수 있고, 리눅스에서 개발한 프로그램을 macOS에서 사용할 수도 있습니다.
이런 플랫폼에 독립적인 특성이 자바의 큰 장점 중 하나이고, 이것을 가능하게 해주는 것이 바로 JVM입니다.
📌마치며..
이번 글에서는 JVM에 관한 간단한 기능에 대해 알아보았습니다.
하지만 JVM은 더 복잡한 영역들로 이루어져 있습니다.
JVM에 관한 더 자세한 내용은 이후에 다시 다뤄보도록 하겠습니다.
읽어주셔서 감사합니다:)
📢
1. 개발자 준비생이 공부한 내용을 정리한 글입니다. 내용에 오류가 있을 수 있습니다.
2. 위와 같은 이유로 내용에 대한 지적과 조언은 감사하게 받습니다.
3. 이 글의 내용은 계속 공부함으로써 언제든지 추가/수정 될 수 있습니다.
'JAVA' 카테고리의 다른 글
JAVA Calendar, LocalDate 알아보기 (0) | 2024.11.01 |
---|