[Java] 자바의 컴파일 방식

이신영·2024년 5월 31일
1

Java

목록 보기
5/12
post-thumbnail

일반적으로 프로그램은 어떻게 만들어질까?

컴퓨터의 프로그램을 만드는 방식은 크게 두가지다.

  • 정적 컴파일
  • 인터프리트

보통 컴파일러나 인터프리터를 사용해서 프로그램을 어떻게 번역할까 의 차이이다.

정적 컴파일 방식(컴파일러)

실행하기 전에 원시코드를 목적코드로 번역해준다.

  • 원시 코드(소스 코드)
    • 고급 프로그래밍 언어로 작성된 원래의 코드
  • 목적 코드
    • 저급 프로그래밍 언어로 작성된 실행 가능한 코드
    • 주로 다른 프로그램이나 하드웨어가 처리하기에 용이한 형태로 출력

인터프리트(인터프리터)

실행 중에 원시 코드를 한줄씩 번역해준다.

하지만? 자바는 둘의 방식을 합쳤다!


자바의 컴파일 방식

JIT(Just-In-Time) 컴파일러

정적 컴파일방식과 인터프리트 방식을 혼합한 방식이라 보면된다. javac로 컴파일 하고 java로 실행 시 중간언어(클래스 파일)를 한줄씩 자바 인터프리터가 번역하기에 컴파일 언어 이면서 인터프리터 언어이다.

번외) AOT(Ahead-Of-Time) 컴파일러

소스 코드를 미리 컴파일하는 방식이다. c/c++가 이렇죠?

그럼 왜 JIT 씀?

  • 앱설치 속도가 AOT에 비해 빠르고 용량을 적게 차지한다.
  • 브라우저에서 컴파일 되는 방식이기 때문에 디버깅이 용이하다

하지만??

  • 실행속도가 느림
  • AOT보다 CPU 많이 잡아먹음

출처

profile
후회하지 않는 사람이 되자 🔥

0개의 댓글