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 |