반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

지금까지 파이썬 위주로 포스팅을 해왔는데, 제가 업무에서 자바를 다루게 되어서 급하게 자바를 공부하게 되었습니다.

 

저도 자바 왕초보인 만큼 글에 부족함이 많을 수 있으니 미리 양해부탁드립니다!

 

 


이번 시간에는 자바를 처음 접하면 자주 듣는 용어들의 개념을 명확히 이해하는 시간을 가져보겠습니다. 용어들을 공부하면서 자바의 구조에 대해서도 이해하실 수 있을거예요.

 

 

1. JVM이란?

 

가장 첫 시간에 자바의 장점에 대해서 이야기 할 때, 자바 가상 머신(JVM, Java Virtual Machine)을 사용하여, 운영체제와는 독립적으로 동작할 수 있다고 말씀드렸었습니다.

 

이 JVM을 설명 드리려면 그 전에 소스 코드와 바이트 코드의 차이에 대해서 이해하셔야 하는데요.

바이트 코드는 바이너리 코드라고도 부름

 

우리가 앞으로 배울 자바 문법을 이용해서 작성할 코드를 자바 소스 코드라고 합니다. 그 코드가 저장된 파일의 확장자는 .java이구요.

 

우리가 지난 시간에 선택했던 eclipse IDE에서는 코드를 작성하고 저장을 하면, 자동으로 자바 바이트 코드(.class) 파일이 생성되어 저장되는데요. 이 과정을 컴파일(Compile)이라 부르며 사람이 짠 코드를 컴퓨터가 알아들을 수 있는 코드로 변환되는 과정입니다.

 

정확히는 JVM이 알아들을 수 있는 코드이며, JVM은 이를 해석해서 실행시켜 주는 것입니다.

(참고로 Windows, Linux, Mac OS 마다 각각의 JVM이 있으며,  class 파일만 같다면 동일한 결과를 출력하게 됩니다.)

 

 

2. JRE와 JDK란?

 

JRE란 Java Runtime Environment의 약자로 자바 실행환경을 의미합니다. 아래 그림에서 보시는 것과 같이 방금 전 배웠던 JVM과 JVM이 동작하는데에 필요한 각종 자바 라이브러리를 의미합니다.

JVM, JRE, JDK의 관계 (출처.programiz.com)

 

마지막으로 가장 JRE에 컴파일러, 디버거, JavaDoc 등을 포함하는 개념이 가장 첫 시간에 설치했던 JDK(Java Development Kit)입니다.

 

 

3. 워크스페이스, 프로젝트, 패키지, 클래스의 관계

 

처음에 이클립스를 실행해서 강의를 따라서 Hello World가 출력되는 코드를 작성해보니, 좌측 Package Explorer에 많은 것들이 계층을 이루며 표현되어 있었습니다.

 

앞으로 코딩을 하기 위해서는 이런 구조들이 어떤 의미와 관계를 가지는지 파악해놓는게 좋겠다고 생각하여 좀 더 자세히 공부해보았습니다.

HelloWorld 프로젝트

 

이에 대한 내용이 아주 잘 정리된 블로그가 있어서 참고하였습니다. 너무 잘 정리해두셔서 별다른 설명이 필요 없을 것 같네요.

 

출처. https://codevang.tistory.com/76

 

원래는 이번 시간에 워크스페이스, 프로젝트를 생성하고, HelloWorld를 출력하는 자바 소스 코드 파일, 클래스 등을 다루어보려 했으나, 글이 길어질 듯해서 다음 글에서 다루어 보도록 하겠습니다.


<참고 자료>

 

1. 자바의 이식성-"바이트 코드"에서 "가상머신"까지_네이버 블로그(행복을 주는 공간)

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=web4click&logNo=110159692556 

 

2. 워크스페이스/프로젝트/패키지/클래스의 개념 및 명명규칙_티스토리 블로그(codevang)

https://codevang.tistory.com/76

 

반응형

+ Recent posts