Main/*자바의 정석: 1장

Chapter1-04. 자바 가상 머신 (JVM)

뚱토93 2023. 5. 26. 12:50
  • JVM은 ‘Java virtual machine’을 줄인 것이다. (=자바를 실행하기 위한 가상 기계)
  • 영어권에서는 컴퓨터를 머신 (machine) 이라고도 부르기 때문에 ‘머신’이라는 용어대신 ‘컴퓨터’를 사용해서 ‘자바를 실행하기 위한 가상 컴퓨터’라고 이해하자.

 

  • ‘가상 기계 (virtual machine)’는 소프트웨어로 구현된 하드웨어를 뜻하는 넓은 의미의 용어이다. 컴퓨터의 성능이 향상되서 점점 더 많은 하드웨어들이 소프트웨어화되어 TV와 비디오를 소프트웨어화한 윈도우 미디어 플레이어라 던가, 오디오 시스템을 소프트웨어화한 윈앰프 (winamp) 등이 있다.
  • ‘가상 컴퓨터 (virtual computer)’는 실제 컴퓨터 (하드웨어)가 아닌 소프트 웨어로 구현된 컴퓨터라는 뜻으로 컴퓨터 속의 컴퓨터라고 생각하면 된다.

 

  • 자바로 작성된 애플리케이션은 모두 이 가상 컴퓨터 (JVM) 에서만 실행되기 때문에, 자바 애플리케이션이 실행되기 위해서는 반드시 JVM이 필요하다.

  • Java 애플리케이션은 JVM을 한 번 더 거치고 그리고 하드웨어에 맞게 완전히 컴파일 된 상태가 아니고 실행 시에 해석(interpret)되기 때문에 속도가 느리다는 단점을 가지고 있다. 그러나 요즘엔 바이트코드(컴파일된 자바코드)를 하드웨어의 기계어로 바로 변환해주는 JIT컴파일러와 향상된 최적화 기술이 적용되어서 속도의 격차를 많이 줄였다.
  • 일반 애플리케이션은 OS와 바로 맞붙어 있기 때문에 OS종속적이고, 다른 OS에서 실행시키기 위해서는 애플리케이션을 그 OS에 맞게 변경해야한다.
  • 반면에 Java 애플리케이션은 JVM하고만 상호작용을 하기 때문에 OS와 하드웨어에 독립적이라 다른 OS에서도 프로그램의 변경없이 실행이 가능한 것이다. 단, JVM은 OS 에 종속적이기 때문에 해당 OS에서 실행가능한 JVM이 필요하다.