자바 소스 파일(.java)을 JVM으로 실행하는 과정을 알아보자
내가 작성한 자바 프로그램은 다음과 같은 순서로 실행됩니다.
자바 소스코드(.java)를 작성합니다.
자바 컴파일러가 작성한 소스코드를 컴파일합니다. 컴파일의 결과로 바이트 코드(.class) 파일이 생성됩니다.
바이트 코드를 JVM의 클래스 로더에게 전달합니다.
클래스 로더는 필요한 클래스들을 JVM 메모리(Runtime Data Area)에 적재합니다.
실행 엔진은 JVM 메모리에 올라온 바이트 코드를 명령어 단위로 하나씩 실행합니다.
컴파일은 개발자가 작성한 소스코드를 바이너리 코드로 변환하는 과정을 말합니다. 다시 말해서, 우리가 이해하는 고급 언어로 작성된 코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 것입니다.
자바는 컴파일 과정을 통해 JVM에서 실행 가능한 바이트 코드 형태의 클래스 파일이 생성됩니다.
빌드는 소스코드 파일을 실행 가능한 소프트웨어 산출물로 만드는 일련의 과정을 말합니다. 즉, JAR이나 WAR 등의 실행 가능한 파일을 만드는 작업인데요. 당연하게도 컴퓨터가 실행할 수 있으려면 컴퓨터가 이해할 수 있는 바이너리 코드로 변환 해주는 작업이 반드시 선행되어야겠죠. 그래서 컴파일은 빌드의 단계 중 일부라고 볼 수 있습니다.
빌드를 도와주는 Tool에는 Maven, Gradle, Ant 등이 있어요. 전처리, 컴파일, 패키징, 테스팅, 배포 등의 기능을 포함하고 있죠.
Java Virtual Machine
작성한 자바 프로그램을 실행시킬 수 있는 가상 머신입니다.
자바를 처음 공부할 때 'Java는 OS에 독립적입니다' 라는 문구를 보신적이 있을겁니다. 글자 그대로 자바 프로그램은 JVM 위에서 실행되기 때문에 특정 OS에 종속적이지 않습니다.