목차
- 컴퓨터는 어떻게 코드를 이해할까?
- JDK, JRE, JVM
1. 컴퓨터는 어떻게 코드를 이해할까?
우리가 컴퓨터에 코드를 입력하면 어떻게 컴퓨터는 이해하고 실행하는지 과정을 살펴보겠다.
- 우선, 컴퓨터는 0과 1만 인식할 수 있는 존재다. 코드는 인간의 언어를 기반으로 구성되어 있으므로 0과 1의 바이너리 코드로 변경해야 컴퓨터가 이해할 수 있다. 이 변환 과정을 컴파일 이라 하고 컴파일을 실행시켜주는 주체를 컴파일러라 한다.
* 컴파일 : 코드를 바이너리 코드로 변경하는 것
* 컴파일러 : 컴파일을 해주는 주체

- 하지만 운영체제(OS)마다 바이너리 코드를 해석하는 방식이 다르다. 그래서 컴파일을 통해 바이너리 코드로 변환시킨다 하더라도 특정 OS에서만 작동하고 다른 OS에서는 작동하지 않는다.
- 이 문제를 해결하기 위해 두 가지 방법이 존재한다
첫째. 각 OS에 맞게 따로 컴파일러를 만든다.
둘째. 컴파일된 파일을 해석하는 프로그램을 만든다.


자바는 두 번째 방법을 택해서 다른 OS에서도 구동이 가능하게 한다. 이 방법의 장점은 컴파일된 파일이 같으므로 다른 OS에서도 해석 프로그램만 설치하면 구동이 가능하다는 것이다. 그리고 이 해석프로그램을 JMV라고 한다.
2. JDK, JRE, JVM

* JVM : Java Virtual Machine. OS별로 따로 존재하며 바이너리 코드를 읽고 검증하고 실행한다.
* JRE : Java Runtime Enviroment . JVM + 자바 실행에 필요한 라이브러리
* JDK : Java Development Kit. JRE + 개발을 위한 도구(컴파일러, 디버그 도구 등)
즉, JDK를 설치하면 한 번에 다 설치하는 것과 같다.
- 자바 버전 중 LTS?
LTS : Long Time Support. 지원이 오래 되는 버전.
참고 : https://www.youtube.com/watch?v=f0cAmTYo4tQ