JVM, JDK, JRE

naeganugu·2024년 6월 17일
0

스프링 마스터🌱

목록 보기
21/21

JVM, JRE, JDK는 자바 프로그래밍에 사용 되는 3대 핵심 기술 패키지다.

JVM

  • Java Virtual Machine, 자바 가상 머신
  • 프로그램을 실행하는 자바 플랫폼 구성요소
  • 자바로 작성된 모든 프로그램은 JVM에서만 실행될 수 있다.
  • 운영체제 상관 없이 자바 프로그램이 모든 플랫폼에서 제약 없이 동작할 수 있다.

JRE

  • Java Runtime Environment, 자바 런타임 환경

  • 자바 코드를 실행하기 위한 도구들로 구성된 패키지

  • 자바 프로그램을 구동하기 위한 독립형 구성요소로 사용될 수도 있고, JDK의 일부이기도 하다.

    • 자바 프로그램을 실행하는 것이 자바 프로그램을 개발하는 것이 되므로, JDK는 JRE를 필요로 한다.

      JRE는 JVM과 더불어 자바 프로그램 실행에 필요한 여러 라이브러리들을 가지고 있다.

JDK

  • Java Development Kit, 자바 개발 키트
    • 개발자들이 자바로 개발하는 데 사용되는 SDK 키트

💡 Software Development Kit (소프트웨어 개발 키트)
⇒ 하드웨어 플랫폼, 운영체제 또는 프로그래밍 언어 제작사가 제공하는 툴. 키트의 요소는 제작사마다 다르다.
⇒ 대표적인 예 > 안드로이드 스튜디오

  • 컴파일러와 클래스 라이브러리를 포함한 자바 플랫폼 서양서의 구현
    • 자바 기반 애플리케이션 개발을 위해 다운 받아야 하는 소프트웨어 패키지
  • JDK를 선택할 때 자바 버전과 패키지를 선택하게 된다. 패키지는 다음과 같다.
    • Java EE(Enterprise Edition)

    • Java SE(Standard Edition)

    • Java ME(Mobile Edition)

      일반적으로, 개별 JDK 버전은 자바 SE를 포함하고 있다

💡 Spring이나 Spring Boot를 쓴다고 할 때, JDK는 Java EE를 기반으로 해?

GPT said..
JDK ⇒ Java 애플리케이션을 개발하고 실행하는 데 필요한 기본 도구와 라이브러리를 제공. 컴파일러(javac), JRE(Java 런타임 환경), 표준 라이브러리, 디버거 및 개발 도구 등 포함

SpringSpring Boot는 Java EE의 대안으로, 더 가볍고 모듈화된 방법으로 Java 애플리케이션을 개발할 수 있게 해줌. 기본적으로 Java SE를 기반으로 함. Spring 애플리케이션은 Java EE 애플리케이션 서버를 사용하지 않고도 독립적으로 실행될 수 있다.

  • Java SE JDK: 표준 JDK로 대부분의 Java 애플리케이션 개발에 사용.
  • Java EE: Java SE를 기반으로 추가적인 엔터프라이즈 기능을 제공하는 플랫폼. "Java EE JDK"라는 용어는 없고, Java SE JDK에 추가적인 애플리케이션 서버와 라이브러리를 사용. 현재 Java EE는 Jakarta EE로 이름이 변경
  • Java ME: 모바일 및 임베디드 애플리케이션 개발을 위한 도구. "Java ME JDK"라는 용어는 사용되지 않으며, 별도의 SDK로 제공. Java ME SDK (Software Development Kit)를 설치하여 Java ME 애플리케이션을 개발할 수 있음.
    JDK는 기본적으로 Java SE JDK를 의미하며, 필요에 따라 Java EE 관련 도구와 라이브러리를 추가하거나, Java ME SDK를 별도로 사용하여 특정 애플리케이션을 개발할 수 있습니다.

JDK는 JVM, JRE를 모두 포함하고, 자바 개발에 필요한 development tools 도 포함하고 있다.

JDK 디렉토리에 들어가보면 다음과 같다.

  • bin

    • 자바 개발 및 실행에 필요한 도구와 유틸리티 명령

      bin 폴더 안에 들어가보면 다음과 같은 개발 프로그램들이 있다. 대부분 .exe 파일이다.

      javac : 자바 컴파일러. Java source code → Java byte code

      java : 자바 인터프리터. byte code를 해석하고 실행

      jar : 자바 클래스 파일을 압축한 자바 아카이브 파일(.jar) 생성, 관리하는 압축 프로그램

  • include

    • 네이티브 코드 프로그래밍에 필요로 하는 C언어 헤더 파일
  • lib

    • 실행 시간에 필요한 라이브러리 클래스
profile
seungseung-zanggu

0개의 댓글

관련 채용 정보