[java] JDK란 무엇인가?(+JRE,JVM)

김남균·2023년 8월 2일
1

java

목록 보기
1/15

자바에 대한 생각과 정리

1) java

Java의 가장 큰 특징은 플랫폼에 독립적인 언어라는 점이다. 소스 코드를 기계어로 직접 컴파일하여 링크하는 C/C++의 컴파일러와 달리 자바 컴파일러는 바이트코드인 클래스 파일(.class)을 생성하고, 이 파일의 바이트코드를 읽은 뒤 기계어로 바꾸어 실행하는 것은 자바 가상 머신(JVM)이다.


2) JDK(java Development Kit)

Java Development Kit (JDK) 란?

  • Java 프로그램을 개발하기 위해 필요한 도구 모음이다. JDK는 Java 컴파일러, 디버깅 도구, 자바 가상 머신 (JVM) 등을 포함하고있다.

  • JDK 종류

    Java SE : Java Platform , Standard Edition
    표준 자바 플랫폼으로 표준적인 컴퓨팅 환경을 지원하기 위한 자바 가상머신 규격 및 API 집합을 포함한다.
    JavaEE, JavaME는 구체적인 목적에 따라 자바 SE를 기반으로 API를 추가하거나 자바 가상머신 규격 및 API의 일부를 택하여 정의된다.
    
    Java EE : Java Platform , Enterprise Edition
    JavaSE에 웹 어플리케이션 서버에서 동작하는 기능을 추가한 플랫폼
    이 스펙에 따라 제품을 구현한 것을 웹 어플리케이션 서버(WAS)라 한다. ex. tomcat
    
    Java ME : Java Platform , Micro Edition
    제한된 자원을 가진 휴대전화, PDA 등에서 Java 프로그래밍 언어를 지원하기 위해 만든 플랫폼 중 하나이다.
  • JDK 구성

    javac
    자바 컴파일러(자바 소스파일 -> 바이트코드로 변환)
    
    java
    javac가 만든 클래스 파일을 해석 및 실행
    
    jdb
    자바 디버깅 툴
    
    JRE,JVM 이 두가지는 아래에 조금 더 상세하게 정리해보려고한다.

3) JRE(java Runtime Evironment)

Java 런타임 환경(JRE)은 Java 프로그램이 올바르게 실행되기 위해 필요한 소프트웨어이며, 자바 코드를 실행하기 위한 도구들로 구성된 패키지이다.
Java는 여러 최신 웹 및 모바일 애플리케이션의 기반이 되는 컴퓨터 언어이며, JRE는 Java 프로그램과 운영 체제 간의 통신을 위한 기본 기술이다. JRE는 Java 소프트웨어 작성 시 추가 수정 없이 어떤 운영 체제에서도 실행되도록 모든 리소스를 제공하는 번역기 및 촉진자 역할을 한다.


4) JVM(Java Virtual Machine)

JVM(Java Virtual Machine)이란?
자바 가상 머신 JVM(Java Virtual Machine)은 자바 프로그램 실행환경을 만들어 주는 소프트웨어다. 자바 코드를 컴파일하여 .class 바이트 코드로 만들면 이 코드가 자바 가상 머신 환경에서 실행된다. JVM은 자바 실행 환경 JRE(Java Runtime Environment)에 포함되어있으며, 현재 사용하는 컴퓨터의 운영체제에 맞는 자바 실행환경 (JRE)가 설치되어 있다면 자바 가상 머신이 설치되어 있다는 뜻이다.


+그 밖의 추가적인 내용

IDE(Integrated Development Environment)는 코딩, 디버그, 컴파일, 배포 등 프로그램 개발에 관련된 모든 작업을 하나의 프로그램 안에서 처리하는 것을 도와주는 소프트웨어이다.

이클립스(eclipse)는 IDE 의 한 종류로써 기본적으로 자바 프로그램을 개발할 수 있도록 구성되어 있는 소프트웨어이지만 플러그인을 추가적으로 설치하면 안드로이드 앱 개발, 웹 애플리케이션 개발, C,C+ 등 다양한 개발 환경을 사용할 수 있다.

LTS(Long Term Support)는 일반 버전과 달리 안정성에 중점을 둔 버전으로, 기능 업데이트는 최소한으로 이루어지거나 아예 없는 반면 보안 업데이트의 지원 기간이 일반 버전보다 훨씬 길다. 그렇기 때문에 서버 등 최신 기능보다 안정성이 더 중요한 곳에서 많이 쓰인다. 또한 기업이나 기관 등에서 기능 업데이트로 인해 이용 중인 다른 소프트웨어가 영향을 받는 것을 피하기 위해 이용하기도 한다.

런타임(runtime→실행시간)은 컴퓨터 프로그램이 실행되고 있는 동안의 동작을 말한다.

런타임 환경(runtime environment)은 컴퓨터가 실행되는 동안 프로세스나 프로그램을 위한 소프트웨어 서비스를 제공하는 가상 머신의 상태이다. 운영 체제 자체에 속하는 경우도 있고 운영 체제에서 작동하는 소프트웨어를 뜻할 수도 있다.


요약

자바를 시작하는 단계에 앞서 자바의 구동 원리에 대해 알아보았다.
JDK는 Java 프로그램을 개발하기 위해 필요한 도구 모음.
JRE는 구현한 프로그램들을 런타임 할 수 있도록 도와주는 프로그램.
JVM은 운영체제와 하드웨어의 환경에 맞춰 실행시켜주는 프로그램.
LTS(Long Term Support)는 말 그대로 장기 지원되는 버전을 의미한다.

마지막으로 이클립스를 사용해 통합 개발 환경(IDE)을 구축하였는데 JDK버전에 대한 생각을 하며 설치해야한다는 조심성을 느꼈다.


아래 글들을 참조하였습니다.감사합니다!
https://adjh54.tistory.com/213
https://aws.amazon.com/ko/what-is/java-runtime-environment/
https://coding-factory.tistory.com/827
https://pythontoomuchinformation.tistory.com/277
https://velog.io/@shelly/JAVA-JDK%EB%9E%80
https://refreshjava.com/java/jdk-jre-jvm

1개의 댓글

comment-user-thumbnail
2023년 8월 2일

공감하며 읽었습니다. 좋은 글 감사드립니다.

답글 달기