본문 바로가기

IT 리뷰/윈도우 Tip

자바 가상머신(JVM)이란? 자바 프로그램의 실행 환경

반응형

자바 가상머신(JVM)이란? 자바 프로그램의 실행 환경


자바 가상머신(JVM, Java Virtual Machine)은 자바 프로그램을 실행하기 위한 소프트웨어입니다. 자바 코드는 컴파일 과정을 거쳐 .class 바이트 코드로 변환되고, 이 코드는 JVM 환경에서 실행됩니다. JVM은 자바 실행 환경인 JRE(Java Runtime Environment)에 포함되어 있으며, 운영체제에 맞는 JRE가 설치되어 있다면 JVM도 설치되어 있다는 뜻입니다.

자바의 플랫폼 독립성과 JVM의 역할

자바는 플랫폼에 독립적입니다. 이는 자바 코드가 JVM에서 실행되기 때문에 어떤 플랫폼에서도 동작할 수 있다는 것을 의미합니다. 

다른 언어들은 컴파일러를 사용하여 각 플랫폼에 맞는 실행 파일을 생성해야 하지만, 자바는 컴파일된 바이트 코드를 JVM이 해당 플랫폼에 맞는 실행 파일로 변환해줍니다. 즉, 자바는 플랫폼에 의존적이지 않으며, JVM을 사용함으로써 하나의 바이트 코드로 모든 플랫폼에서 동작할 수 있게 됩니다.


이러한 JVM의 역할을 통해 자바 개발자는 특정 운영체제나 플랫폼에 종속되지 않고 프로그램을 개발할 수 있습니다. 예를 들어, C/C++로 작성된 프로그램은 특정 운영체제에서만 실행되는 실행 파일을 생성해야 합니다.

하지만 자바로 작성된 프로그램은 JVM이 설치되어 있는 어떤 플랫폼에서도 실행될 수 있습니다.

자바 가상머신 JVM 프로그램 실행 과정

먼저, 자바 코드를 작성하고 컴파일러를 사용하여 .class 파일로 변환합니다. 이후, JVM의 클래스 로더에 의해 .class 파일이 JVM Runtime Data Area로 로딩되고 실행 엔진에 의해 해당 코드가 실행됩니다.

JVM은 바이트 코드를 명령어 단위로 해석하여 실행하며, Interpreter 방식과 JIT(Just-In-Time) 컴파일 방식을 혼합하여 사용합니다. Interpreter 방식은 바이트 코드를 한 줄씩 해석하고 실행하는 방식으로 초기에는 속도가 느린 단점이 있습니다. JIT 컴파일 방식은 바이트 코드를 실제 실행 시점에 네이티브 코드로 변환하여 실행 속도를 향상시킵니다.

JVM은 메모리 관리도 중요한 역할을 수행합니다. 가비지 컬렉션(Garbage Collection) 기능을 통해 사용하지 않는 객체들을 자동으로 제거하여 메모리를 관리합니다. JVM은 또한 파일 시스템 액세스, 네트워크 입출력과 같은 시스템 리소스를 관리하여 프로그램 실행 환경을 제공합니다.

자바 개발자들은 JVM을 통해 플랫폼에 독립적인 프로그램을 개발할 수 있으며, JVM이 자바 코드를 실행하는 과정에서 메모리 관리와 시스템 리소스 액세스를 담당합니다. JVM은 자바의 특징 중 하나로, 자바 언어의 유연성과 이식성을 제공하며, 여러 플랫폼에서의 개발과 실행을 용이하게 합니다.

반응형