Java

Java 란? (컴파일이란?)

옷덕 2022. 10. 31. 17:39

안녕하세요. 첫 프로그래밍 언어인 Java를 배워가며 배웠던 내용들을 티스토리에 정리해 두려고 합니다.

 

이클립스를 열고 Java로 HelloWolrd 프린트를하는 프로그램을 간단히 만든후 저장해둔 후 터미널(CMD)를 열고 javac 명령어를 해당 파일에 적용하면 아래 사진처럼 커피모양의 .class 파일을 볼 수 있습니다.

 

이 커피아이콘 파일들을 '클래스파일 또는 바이트코드'라고 부른다고 합니다

 

 

코린이 입장에서 궁금했던건 저 커피모양의 파일들은 무엇인가? 였습니다. 왜 만들며? 어떻게 사용하며? 등등 그래서 알아봤습니다.

 

저렇게 클래스파일들을 생성하여 사용하는 이유는 Java란 언어가 만들어진 이유와 직접적인 관련이 있습니다. Java가 나오기 전에는 Windows, Linux, Mac OS(Operater system) 등 운영체제 별로 프로그래밍을 따로 했어야 됐다고 합니다.

 

OS별 JVM이라는 자바가상머신을 거쳐 Java Program으로 작동하게 됩니다.(JVM을 중계센터&통역센터 역할로 보면 될듯 합니다)

 

 

이러한 시대적 요구에 응해 제임스 고슬링과 그의 팀워들이 Java를 만들게 됩니다. Java는 한번 작성하면 어느 플랫폼에서도 사용 가능하다는 획기적인 변화를 가져왔는데 WORA('Write Once, Run Anywhere') 이라는 말이 유명하죠.

 

빌게이츠 분장역에 케익을 먹여주는 제임스 고슬링

 

Java라는 이름에 관해서는 여러 썰이 있지만 저는 아이콘부터 커피잔 모양인게 제임스 고스링이 실제로 자바커피를 좋아해서 자바로 네이밍을 했을것 같다는 설을 믿습니다ㅎㅎ 

 

일반프로그램과 java프로그램의 실행단계 차이

 

 

말이 잠시 샜습니다. 그렇다면 컴파일이란 무엇일까요? 위 사진에서 보이듯 Java 프로그램들은 JVM(Java Virtual Machine)을 거쳐가며 실행됩니다. 이 JVM이 해당 파일을 기계가 이해할 수 있게 바꿔주는 과정이 컴파일이고, 그렇게 컴파일 된 파일이 커피잔 모양의 .class 파일들입니다. 이렇게 생성된 클래스파일들을 이용해 JVM은 기계어로 컴퓨터(CPU)와 정보를 주고 받으며 프로그램들을 실행시켜 주게 됩니다.

 

이상 Java와 컴파일이란 무엇인가에 대해 알아봤습니다. 감사합니다!

 

 

 

추가)

Java와 JDK,JVM 등을 공부할때 흔히 같이 나오는 도구들인데 간단히 정리해 두도록 하겠습니다.

  • JDK : 자바개발도구 (컴파일러 : JVM이 알아먹게 컴파일 해야되니까, 디버거)
  • JRE : 자바실행환경 (java 실행에 필요한 라이브러리 파일들)
  • JVM : 자바가상머신 (우리가 컴파일한 01011로 된 파일들을 실행, cpu와 소통)