본문 바로가기

Java & JSP

(이미지 삽입 예정)[Java] Java의 객체지향 - JVM, JRE, JDK / 자바 프로그램 구동 형태

728x90
반응형

1. JVM, JRE, JDK 쉽게 이해하기 (현실 세계와 비교)

  • 현실 세계 VS 자바 세계
현실 세계 가상 세계(자바 월드)
소프트웨어 개발 도구 JDK - 자바 개발 도구 JVM용 소프트웨어 개발 도구
운영체제 JRE - 자바 실행 환경 JVM용 OS
하드웨어 - 물리적 컴퓨터 JVM - 자바 가상 기계 가상의 컾뮤터

(현실) 컴퓨터를 구동하기 위해 필요한 개발도구 -> (자바) JDK

(현실) 소프트웨어(프로그램)을 구동시키도록 도와주는 환경인 운영체제 -> (자바) JRE

(현실) 컴퓨터를 구동하기 위한 물리적인 존재, 컴퓨터 -> (자바) JVM(Java Virtual Machine)

 

자바 개발 도구인 JDK를 이용해 개발된 프로그램은

JRE에 의해

가상의 컴퓨터인 JVM 상에서 구동된다.

 

* 참고 : 편의 상 JDK가 JRE 포함, JRE는 JVM 포함하는 형태로 배포된다.

 

2. 자바 프로그램의 구동 구조

  • 자바 프로그램의 개발과 구동 구조

(그림)

 

  • JDK, JRE, JVM 관계 (그림 참고)
    - JDK는 자바 소스 컴파일러(=자바 번역기)(javac.exe)를 포함한다.
    - JRE는 자바 프로그램 실행기(java.exe)를 포함한다.

 

  • 왜 이런 구조일까 ?
    - 각 플랫폼(윈도우7, 윈도우8, 맥 OS, 리눅스 등) 용으로 배포되는 설치 파일을 따로 준비하는 불편함을 없애기 위해서
    - 개발자는 본인이 사용 중인 플랫폼에 설치된 JVM용으로 프로그램을 작성한다.
      작성 후 배포하면 JVM이 중재자로서 각 플랫폼에 맞게 구동시켜 문제가 없게 만들어 준다.
      (멋진 JVM.. 개발자들의 귀찮음을 덜어주었다..)

 

용어 정리
JDK : Java Development Kit / 자바 개발 도구
JRE : Java Runtime Environment / 자바 실행 환경
JVM : Java Virtual Machine / 자바 가상 기계

 


참고 서적

스프링 입문을 위한 자바 객체 지향의 원리와 이해 - 김종민 지음

 

728x90
반응형

'Java & JSP' 카테고리의 다른 글

[Java] 객체 정렬 - Comparable, Comparator  (0) 2021.07.16
[Java] compareTo 숫자, 문자열 비교  (0) 2021.07.14
[Java] 제어자  (0) 2019.01.17
[Java] 접근 제어자(access modifier)  (0) 2019.01.17
임시  (0) 2018.11.01