티스토리 뷰

개발/JAVA

자바 컴파일러

카렐 2018. 6. 1. 13:14


자바의 컴파일러

● 자바의 컴파일러는 JDK에 포함되어있으며 소스(자바로 작성된 소스)를 바이트 코드로 변환하는 작업을 한다.

↑ compile의 사전적 의미


JDK

 Java Development Kit 으로 Java 환경에서 프로그램을 개발하는데에 필요한 툴들을 모아놓은 소프트웨어 패키지이다.

 JRE(Java Runtime Evironment)와 Java 바이트코드 컴파일러, Java 디버거 등을 포함하고 있다.


바이트 코드

 자바로 작성된 소스를 컴파일하게되면 .class라는 확장자의 파일이 만들어진다. 이 파일이 바이트코드를 이루고있다.

 바이트코드는 특정 하드웨어가 아닌 가상 컴퓨터에서 돌아가는 실행 프로그램을 위한 이진 표현법이다.

↑ 자바코드가 바이트코드로 변환되는 과정


바이트 코드가 왜 필요하지?

 JVM이 바이트코드를 각 운영체제(윈도우, 리눅스등)에서 CPU가 읽을 수 있는 기계어로 번역해준다.

 바이트코드로 한번만 작성해 놓으면 어떤 운영체제에서든 JVM이 알아서 기계어로 컴파일해주기때문에 범용성이 뛰어나다


기계어

 CPU가 바로 해독할 수 있는 유일한 언어

 비트단위로 표기하기 때문에 0과 1로만 표현된다.


역컴파일 혹은 디컴파일

 소스를 바이트 코드에서 원천소스(자바로만들어진)를 추출하는 것을 말한다.

 자바는 주석문을 제외한 거의 완전한 소스코드를 추출할 수 있기때문에 '디컴파일에 취약하다고 말한다.'

 그렇기 때문에 디컴파일을 방지하기위한 방법들이 존재한다.




이진 표현법


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크