01. 자바란?
자바는 1991년 6월 썬 마이크로시스템즈(Sun Microsystems)에서 제임스 고슬링(James Gosling)에 의해 만들어졌다. 개발된 이유는 원래 토스트기 같은 가전제품에 들어가는 임베디드 소프트웨어를 만들기 위해서다. 현재까지도 가전제품에 들어가는 소프트웨어에는 저비용, 고효율을 위해 C/C++ 계열의 프로그래밍 언어가 사용되지만, 당시 C++프로그램은 OS와 CPU에 따라 다른 C++ 컴파일러가 필요했다. 이에 제임스 고슬링과 다른 직원들은 OS나 CPU에 구애받지 않고, 다양한 환경에서 실행할 수 있는 언어를 만들었고 이것이 자바다.
02. WORA (Write Once, Run Anywhere)
위에 기술했듯 자바는 어떠한 플랫폼에도 구애받지 않고 실행될 수 있는 언어를 목적으로 만들어졌다. 이를 나타내는 자바의 슬로건의 Write Once, Run Anywhere다. 즉, 한번 코드를 쓰고 나면 어디서든 실행할 수 있다.
그 이유는 자바는 JVM(Java Virtual Machine)이라는 가상머신 위에서 실행되기 때문이다. 우리가 작성하는 소스 코드를 컴퓨터가 이해할 수 있는 기계어로 곧바로 컴파일하는 C/C++관련 컴파일러와 달리, 자바 컴파일러(Java Compiler)는 자바 코드를 기계어로 직접 컴파일하는 것이 아니라 자바 바이트 코드(Java Byte Code; 클래스(.class) 파일)라는 특수한 바이너리 코드로 우선 변환한다. 그리고 JVM이 설치될 수 있는 다양한 시스템에서 JVM을 이용해 이 자바 바이트 코드를 실행하면, JVM이 자바 바이트 코드를 기계어로 번역하고 메모리에 올린 뒤 실행하게 된다.
각 운영체제 별 JVM은 현재 자바를 인수한 오라클에서 일괄적으로 개발하고 배포하므로 사용자는 본인의 운영체제에 맞는 JVM이 설치만 되어 있다면 단일한 자바 바이트 코드를 본인의 운영체제에서 실행하고 동일한 결과를 얻을 수 있다. 이는 WORA라는 자바의 슬로건을 만족하는 작동방식이다.
03. JVM vs JRE vs JDK
1. JRE (Java Runtime Environment; 자바 실행 환경)
자바로 만들어진 자바 바이트 코드 즉, 자바 프로그램을 실행시키는데 필요한 라이브러리들과 각종 API 그리고 JVM을 포함하는 프로그램이다. 즉 JVM이 자바 바이트 코드를 해석할 줄 아는 똑똑이라면, 그 똑똑이 친구에게 수학적인 지식, 자료 구조에 대한 지식 등등 다양한 라이브러리를 제공해 자바 프로그램을 문제없이 실행할 수 있게끔 하는 친구가 JRE이다.
즉 자바 프로그램을 실행시키려면 최소한 JRE이 설치되어 있어야 한다. 따라서 개발자가 아닌 일반 사용자들이 자바 프로그램을 실행하기 위한 프로그램이다.
2. JDK (Java Development Kit; 자바 개발 키트)
개발 시 필요한 라이브러리와 JRE에는 없는 자바 컴파일러(javac) 등의 개발 툴이 추가적으로 포함되어 있는 개발자들을 위한 키트다. 역시 자바 프로그램을 실행할 수 있어야 하므로 JRE가 함께 포함되어 있다. 예를 들어 위의 그림에서 appletviewer는 웹브라우저 없이 자바 애플릿을 실행하고 디버깅하기 위한 툴이라던가, jar은 서로 관련 있는 클래스 라이브러리와 리소스를 하나의 jar파일로 묶어주는 툴이라던가, javap같은 경우는 클래스 파일을 다시 자바 소스 코드로 디스어샘블해주는 툴이라던가 정말 다양하다.
더 자세한 내용은 따로 정리해보겠다.
'프로그래밍 > Java' 카테고리의 다른 글
[Java] Java Build Tools 발전과정 - (3) Gradle (0) | 2023.10.27 |
---|---|
[Java] Java Build Tools 발전과정 - (2) Maven (0) | 2023.10.24 |
[Java] Java Build Tools 발전과정 - (1) Make vs Ant (0) | 2023.10.20 |
[Java] Java기초 - (2) 기초 문법 - 연산자 (0) | 2023.10.18 |
[Java] Java기초 - (2) 기초 문법 - 변수와 리터럴 (0) | 2023.10.12 |