※ 본 글은 아래 도서를 공부한 후 정리한 내용입니다.
📚 스프링 입문을 위한 자바 객체지향의 원리와 이해
현실 세계에서 프로그램은 개발자가 개발자 도구를 사용하여 개발하고 운영체제를 통해 물리적 컴퓨터인 하드웨어 상에서 구동된다.
이를 자바에 대입 시켜보면 개발도구인 JDK를 이용하여 프로그램이 개발되고, JRE에 의해 가상의 컴퓨터인 JDK에서 구동된다.
JDK는 자바소스 컴파일러인 javac.exe를 포함하고있고, JRE는 자바 프로그램 실행기인 java.exe를 포함하고 있다. 이러한 구조는 각 플랫폼용으로 배포되는 설치 파일을 각각 따로 준비해야 했던 불편함을 없애기 위함이다.
자바 개발자는 본인이 사용하는 플랫폼에 설치된 JVM을 사용하여 프로그램을 개발 한 뒤 배포하기만 하면된다. 그럼 다른 플랫폼들에서도 JVM이 중재자로 프로그램을 실행하는데 아무문제 없게 해준다.
JDK - 자바 개발 도구 -> 소프트웨어 개발 도구 같은 역할
JRE - 자바 실행 환경 -> 운영체제 같은 역할
JVM - 자바 가상 기계 -> 하드웨어 같은 역할
개발자는 본인이 사용중인 플랫폼에 설치된 JVM용으로 프로그램을 작성 후 배포(각 플랫폼의 JVM이 문제없이 프로그램 구동)
Write Once Run Anywhere !! (각 플랫폼 별 배포되는 설치 파일을 따로 준비해야 했던 불편함을 없앴다. )