[JAVA]컴파일(Compile)이란

무지성개발자·2023년 7월 26일

컴파일

컴파일이란 프로그래밍 언어를 다른 프로그래밍 언어로 바꾸는 것이다. 컴파일의 특징은 소스코드를 한번에 통으로 바꾼다는 것이다.

생각해보자!
알리에서 물건을 샀는데 벽돌이 왔다. 문의 글을 남기려고하니 영어를 써야한다. 그래서 한국말로 글을 작성하고 구글번역기에 다 돌려서 영어로 번역을 하였다. 이게 컴파일이다.


자바의 컴파일

보통 컴파일 하면 프로그래밍 언어를 CPU가 읽을 수 있는 기계어로 바꾼다고 생각하는데 자바는 JVM에서 돌아가기 때문에 조금 다르다. 컴파일을 한다고 하면 소스파일(.java)을 목적파일(.class)로 바꾸는 과정을 말하는데 자바에서는 목적파일을 바이트파일 라고 한다.

C언어는 다뤄보지 않아서 잘 모르지만 C언어는 컴파일하면 CPU에서 바로 읽을 수 있는 바이너리파일로 바뀌니 바이트파일바이너리파일은 반드시 구분 해야겠다.


왜 사용할까?

컴파일은 왜 해야할까?

컴퓨터는 사람의 언어를 이해 못하기 때문에 번역 과정을 거쳐야 한다. 자바의 번역은 컴파일을 통해서 하는 것 뿐이다.

생택쥐베리의 어린왕자를 원어로 읽은 사람이 몇이나 있을까? 대다수가 번역이 된 책으로 읽었을 것이다. 하물며 사람과 컴퓨터가 통신하려면 컴파일 같은 번역 작업은 꼭 필요하다.


비슷하지만 다른 인터프린터

소스코드를 번역하는 방식은 컴파일러 말고 인터프린터도 있다. 컴파일의 특징은 소스코드를 통으로 바꾼다고 했었다. 인터프린터는 컴파일과는 반대로 한 줄 한 줄 읽어서 코드를 번역하는 것을 말한다.

실시간 통역을 할 때, 통역사는 한 문장 한 문장 바로바로 번역해서 전달하는 모습을 TV로 본적이 있을 것이다.
이 과정이 인터프린터라고 생각하면 될 것 같다.


한 줄평 : 바이너리와 바이트... 상당히 헷갈릴만한 단어다.

profile
no-intelli 개발자 입니다. 그래도 intellij는 씁니다.

0개의 댓글