자바. 기본 용어 정리 -1-

tae_in·2022년 5월 16일
1

자바

목록 보기
1/8

컴파일: 인간이 이해하기 쉬운 언어를 기계어로 변역하는 과정

컴파일러: 컴파일을 하는 프로그램

바이트 코드: 컴퓨터가 이해할 수 있는 0과 1로 이루어진 코드

프로그래밍 언어 ---------- (컴파일러) ---------- 바이트 코드

이 바이트 코드는 운영체제마다 다르기 때문에 컴파일러를 통해 만들어진 바이트 코드를 윈도우, 맥, 리눅스에서 실행시켰을 때 다른 결과가 나올 수 있게 된다.

예를 들어 C언어는 윈도우 C언어 컴파일러, 맥 C언어 컴파일러, 리눅스 C언어 컴파일러가 각각 있어서 이 컴파일러마다 다른 0과 1을 만들어내게 되고 해당 운영체제에 서로 다르게 만들어진 바이트 코드를 전달해 주면 C언어 프로그래밍 언어로 만든 같은 내용이 출력이 되는 식이다.

하지만 자바는 자바 컴파일러 하나가 있고 자바 컴파일러 하나로부터 생성된 0과 1의 바이트 코드가 하나있으며 이 바이트 코드가 윈도우, 맥, 리눅스에 바로 가는 것이 아니라 윈도우의 JVM, 맥의 JVM, 리눅스의 JVM에 가는 것이다.

JVM은 바이트코드와 운영체제 사이에서 둘을 호환시켜주는 역할을 한다.
JVM은 운영체제마다 각각있으며 JAVA를 설치하면 한 번에 같이 설치가 되는 식이다.

정리하면 C언어는 컴파일러가 여러 개 있고 컴파일 된 결과물(바이트코드)이 여러개지만 자바는 컴파일러가 하나고 컴파일된 결과물(버이트코드)이 동일하며 이 결과물을 JVM이 각각의 운영체제에게 번역을 해주는 것이다.

그래서 자바는 한 번만 결과물을 만들어 놓으면 어떤 운영체제에서든지 똑같은 결과가 나온다는 장점이있다.

JDK > JRE > JVM
JDK에는 JRE가 포함되어 있고 JRE에는 JVM이 포함되어 있는 관계이다. 즉, JDK를 설치하면 JRE도 설치되고, JVM도 설치가 되는 것이다.

JVM

JVM (Java Virtual Machine)

  • OS 별로 존재한다.
  • 바이너리 코드를 읽고 검증하고 실행한다.
  • 컴파일 한 결과물을 실행시켜주는 역할

JRE

JRE (Java Runtime Environment, 자바 실행 환경)

  • JRE = JVM + 자바 프로그램 실행에 필요한 라이브러리 파일들
  • JVM의 실행환경을 구현

JDK

JDK (Java Develrpment Kit, 자바 개발 도구)

  • JDK = JRE + 개발을 위한 도구
  • 컴파일러, 디버그 도구 등이 포함
  • 자바의 버전 = JDK의 버전
  • (JDK는 여러 종류가 있으며 기능 자체는 모두 동일하나 성능과 비용에 약간의 차이가 있을 수 있다.)

자바의 버전 중에는 LTS(Long Time Support)라는 버전이 있는데 이 버전은 오래 지원하는 버전을 뜻한다.

0개의 댓글