컴퓨터는 0과 1만 알아듣는데, 프로그래밍 언어는 사람이 보기 편한 형태로 변환되며 컴파일러가 기계어로 번역을 담당
다른 컴퓨터 환경에서 실행하는 기계어 차이로 C로 컴파일한 프로그램이 윈도우에서는 되는데 맥이나 리눅스에서는 안 되는 경우가 있음.
프로그래밍 환경에 따라 컴퓨터마다 기계어로 번역해야하며, 이와 같은 방법은 컴파일러와 인터프리터가 있다. 이를 통해 프로그래밍 언어의 실행이 가능하다.
JVM은 자바 코드를 실행하는 가상 머신을 의미한다.
자바로 코딩을 하고 나서 컴파일을 하면 기계어가 아닌 바이트 코드가 생성됨.
jvm은 자바 코드를 컴파일한 바이트 코드를 기계어로 통역해 실행한다.
java 는 OS에 종속적이지 않다는 특징을 가지고 있다.
OS에 종속받지 않고 CPU 가 Java를 인식, 실행할 수 있게 하는 가상 컴퓨터의 역활을 한다.
자바 런타임 환경으로, 자바 코드를 실행하는데 필요하며, jvm을 찾아 실행 가능하다.
jre는 또한 운영 체제에 설치하여 프로그램이 실행되는 환경을 구성해준다.
jvm을 포함하여 필요한 기능들을 세트로 제공하여 자바 프로그램을 실행할 수 있게 한다.
자바 디벨로먼트 킷 말 그대로 자바 개발 도구의 약자임
jre가 jvm을 포함하는 것처럼 jdk도 jre 즉 자바의 런타임 때 필요한 요소들도 포함
유료와 무료가 있어서 본인의 선택에 따라 결정하여 사용함.
런타임은 run을 실행하는 시점을 의미한다.
해당 프로그램이 필요한 시스템 자원(RAM, 시스템 변수, 환경변수 등)을 할당받고 실제로 시스템 자원을 사용해서 어떤 처리를 하고 있는 상태를 나타냄
컴파일 타임과 런타임은 대조되는 말임.

=============================================================
오늘 느낀점
유튜브 영상을 통해서 정리를 하고 있지만, 단어의 장벽이 크다고 느껴진다.
영상에서 설명하는 대표적인 단어들을 정리하면서, 어느정도 구조를 파악할 수는 있었지만,
전체적으로 이해하기는 무리가 있는거 같다. 언어나 사용하는 단어를 잘알지 못해 생기는 현상 같다.
추가로 사용되는 단어에 대해서는 추가로 학습이 필요하다고 느껴진다.
=============================================================