티스토리 뷰
자바의 컴파일러
● 자바의 컴파일러는 JDK에 포함되어있으며 소스(자바로 작성된 소스)를 바이트 코드로 변환하는 작업을 한다.
↑ compile의 사전적 의미
JDK
● Java Development Kit 으로 Java 환경에서 프로그램을 개발하는데에 필요한 툴들을 모아놓은 소프트웨어 패키지이다.
● JRE(Java Runtime Evironment)와 Java 바이트코드 컴파일러, Java 디버거 등을 포함하고 있다.
바이트 코드
● 자바로 작성된 소스를 컴파일하게되면 .class라는 확장자의 파일이 만들어진다. 이 파일이 바이트코드를 이루고있다.
● 바이트코드는 특정 하드웨어가 아닌 가상 컴퓨터에서 돌아가는 실행 프로그램을 위한 이진 표현법이다.
↑ 자바코드가 바이트코드로 변환되는 과정
바이트 코드가 왜 필요하지?
● JVM이 바이트코드를 각 운영체제(윈도우, 리눅스등)에서 CPU가 읽을 수 있는 기계어로 번역해준다.
● 바이트코드로 한번만 작성해 놓으면 어떤 운영체제에서든 JVM이 알아서 기계어로 컴파일해주기때문에 범용성이 뛰어나다
기계어
● CPU가 바로 해독할 수 있는 유일한 언어
● 비트단위로 표기하기 때문에 0과 1로만 표현된다.
역컴파일 혹은 디컴파일
● 소스를 바이트 코드에서 원천소스(자바로만들어진)를 추출하는 것을 말한다.
● 자바는 주석문을 제외한 거의 완전한 소스코드를 추출할 수 있기때문에 '디컴파일에 취약하다고 말한다.'
● 그렇기 때문에 디컴파일을 방지하기위한 방법들이 존재한다.
이진 표현법
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크