자바의 구동 원리: JDK, JVM 그리고 플랫폼 독립성
자바의 구동 원리: JDK, JVM 그리고 플랫폼 독립성
자바 공부를 시작할 때 가장 처음 배우는 내용이지만, 기초라는 이유로 쉽게 잊히곤 합니다. 하지만 자바가 왜 수많은 개발 현장에서 선택받는지 이해하려면, 그 밑바닥에 흐르는 구동 원리를 정확히 알 필요가 있습니다.
📚 핵심 용어 정리
본격적인 흐름을 이해하기 전, 네 가지 핵심 키워드를 먼저 정의해 봅니다.
- JDK (Java Development Kit): 자바 프로그램을 개발할 때 필요한 모든 도구(컴파일러, 디버거 등)의 모음입니다.
- Javac (Java Compiler): 우리가 작성한 자바 코드(
.java)를 컴퓨터가 이해하기 쉬운 형태인 바이트코드로 변환하는 번역가 역할을 합니다. - JVM (Java Virtual Machine): 자바 프로그램을 실제로 실행시키는 가상 머신입니다. 바이트코드를 읽어 해당 운영체제에 맞는 기계어로 바꿔줍니다.
- 바이트코드 (.class): Javac가 변환한 결과물로, 프로젝트 내
out폴더 등에서 확인할 수 있는 ‘마법의 파일’입니다.
🌍 자바가 플랫폼 독립성을 보장받는 이유
일반적으로 C나 C++ 같은 언어는 윈도우에서 빌드하면 윈도우에서만, 맥에서 빌드하면 맥에서만 실행되는 경우가 많습니다. 하지만 자바는 운영체제에 상관없이 어디서든 실행될 수 있는데, 그 비결은 ‘중간 단계’ 에 있습니다.
실행 과정:
- 코드 작성: 개발자가
.java파일을 작성합니다. - 컴파일: 자바 컴파일러(
javac)가 이 파일을 읽어 바이트코드(.class) 파일로 변환합니다. (이 파일은 프로젝트의out폴더 등에 생성됩니다.) - 실행: 운영체제(Windows, Linux, macOS 등)에 설치된 JVM이 이 바이트코드를 읽어서 프로그램을 실행시킵니다.
핵심은 JVM의 존재
자바 개발자는 운영체제마다 코드를 다르게 짤 필요가 없습니다. 어떤 OS든 그에 맞는 JVM만 설치되어 있다면, 동일한 바이트코드를 완벽하게 실행할 수 있기 때문입니다.
“JVM이 운영체제와 프로그램 사이에서 완충 역할을 해주기 때문에 자바는 플랫폼에 독립적일 수 있습니다.”
🧠 학습 회고: 기본이 가장 강력한 무기다
항상 자바를 시작할 때 배우는 내용이라 가볍게 넘기기 쉽지만, 이번 정리를 통해 자바의 설계 철학을 다시 한번 느꼈습니다.
- 왜 자바를 쓰는가?: 한 번 만든 프로그램을 어디서든 돌릴 수 있다는 경제성과 안정성 덕분에 대규모 시스템에서 자바가 여전히 사랑받는다는 것을 이해하게 되었습니다.
- 느낀 점: 코드를 짜는 기술도 중요하지만, 내가 사용하는 언어가 어떤 메커니즘으로 돌아가는지 아는 것이 진정한 개발자로 성장하는 밑거름이 된다는 것을 깨달았습니다.
앞으로 복잡한 로직을 마주할 때도, 이 ‘기본’이 되는 흐름을 잊지 않고 구조적으로 접근해 보려 합니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.