[Java] JDK, JRE, JVM

노현남·2023년 6월 19일
0

Java

목록 보기
1/11

1. 하위 개념

JDK, JRE, JVM을 알기 전, 자바언어의 특징을 알고 넘어가야 한다.

자바언어의 특징

  1. 운영체제에 독립적
  2. 객체 지향 언어
  3. 자동 메모리 관리
  4. 네트워크, 분산처리 라이브러리 지원
  5. 멀티쓰레드 지원
  6. 동적 로딩 (Dynamic Loading) 지원

위 특징 중 해당 편에서는 운영체제에 독립적 이라는 특징을 중심으로 학습내용을 기술 하려한다.


2.JVM(Java Virtal Machine)

Java 등장 이전

기존의 언어는 한 운영체제에 맞게 개발 된 프로그램을 다른 종류의 운영체제에 적용하기 위해서 운영체제 별로 서로 다른 코드를 작성해야 했다.

이러한 과정에서, 윈도우와 리눅스 등 크로스 플랫폼 호환성 문제가 발생할 뿐 아니라, 각 os 맞게끔 개발 시간과 유지 보수에 리소스 소모를 야기한다.

Java 등장 이후

하지만, 자바가 등장한 이후 부터는 더 이상 그런 노력을 하지 않아도 되게 되었다.
일종의 에뮬레이터인 자바가상머신(JVM)을 통해서 가능하게 되었는데

자바 응용 프로그램으로 전달받은 명령을 해당 운영체제나 하드웨어가 직접 통신하는 것이 아닌, JVM과 통신하여 해당 명령을 각각의 운영체제가 이해할 수 있도록 변환하여 전달한다.

다만, JVM 자체는 운영체제에 종속적이기 때문에 여러 운영체제 별로 서로 다른 버전의 JVM을 제공 하고 있다.

그림으로 조금 더 자세히 이해해 보자.

JVM 작동 흐름

  • 자바로 작성된 소스코드가 컴파일러를 거쳐 바이트 코드로 변환한다. ➡️
  • 변환된 바이트 코드를 운영체제별로 존재하는 JVM이 기계어로 변환한다. ➡️

이러한 이유로 Java의 소스코드는 운영체제에 독립적일 수 있는 것이다.


3.JRE(Java Runtime Environment) & JDK(Java Development Kit)

JRE

JRE(Java Runtime Environment)는 직역한 그대로 자바 실행 환경이다. JRE는 JVM을 포함하여, 자바 프로그램의 실행을 지원한다. 단, 개발에 필요한 컴파일러나 디버거등의 도구는 포함되어 있지 않는다.

JDK

JVM(Java Development Kit) Java를 사용하고, 개발하기 위해 하위 소개된 JVM, JRE를 모두 갖춘 상위 집합이다. JRE의 모든 것과 컴파일러, 디버거등이 포함되어 있다.


4. 결론

Java로 프로그래밍을 하기 위해서는 JDK를 설치해야 한다.

profile
겸손하게 독학하기

0개의 댓글