[JAVA] HelloWorld 나오게 하기

아임 레조·2022년 6월 20일
0

JAVA

목록 보기
3/21
post-thumbnail

드디어 이클립스 실행!
이클립스에 대한 제대로 된 이해없이 일을 시작하다보니 어려움이 많았다. 사소하게는 단축키부터 화면 설정까지, 특히 이클립스라는 IDE로 무엇을 할 수 있는지에 대한 지식이 전혀 없어서 하나하나 클릭해봐야 했다. 이참에 이클립스랑 좀더 친해져봐야지.

프로젝트 만들기


outline은 당장 중요하지 않으니 없애준다. 하나하나 찬찬히 들여다봐야하는데, Package Explorer부터! 프로젝트를 하게 되면 여러 소스코드나 이미지파일을 모아놓는 프로젝트 폴더가 있는데, 그 프로젝트 폴더를 관리하는 것이 package explorer이다.

그런데 이것보다 조금 더 좋은 도구가 있다. 바로 navigator다. package explorer는 프로그램을 개발하는데 필요한, 개발할 때 편리하도록 화면을 바꾸어서 보여준다. 다시 말해 어떤 파일은 숨기기도 한다는 것이다. 초심자 입장에서 너무 많은 정보가 감추어져 있으면 파악하기 어렵기 때문에 프로젝트 폴더를 있는 그대로 보여주는 navigator를 사용하는 것이 좀 더 좋다. navigator는 window>Show view에서 찾을 수 있다.

Package explorer와 비교하기 쉽게 navigator 위치를 조절해주고,


'create a java project'를 눌러 기본 설정을 해본다.

  • 우선 project name을 설정하고,
  • Location의 경우는 본인이 원하는 경로로 설정할 수 있다. 나의 경우는 바탕화면에 새로운 폴더를 만들었고 해당 경로로 설정을 해주었다.
  • JRE(Java Runtime Environment)라는 뜻으로 앞에서 설치한 자바 프로그램이(JVM: Java Virtual Machine)의 버전을 설정하는 부분인데 그대로 두어도 오케이
  • project layout은 우리가 진행하게 될 프로젝트의 폴더 구조를 어떻게 할 것인지 선택하는 부분이다. 1) 소스코드를 저장할 폴더 2) 소스코드를 컴파일한 결과를 저장할 폴더를 설정하는 것인데, 첫번째의 경우 소스코드와 컴퍼일한 파일을 root라는 최상위 폴더에 함께 저장하겠다는 것이고 두번째의 경우는 소스코드는 src에 컴파일한 것은 bin에 저장하겠다는 것이다. 나의 경우는 첫번째를 선택했다.

이 모든 것들을 설정하고 'next'버튼을 눌러준다. 마지막으로 'finish'를 눌러주면 드디어 첫번째 프로젝트의 이클립스 설정 끝!

이제 화면에 Hello World를 띄워보자!

  • 한 java파일에 한개의 class를 만들 수 있는데 그 클래스 이름이 파일 이름과 동일해야 한다.
  • 해당 코드는 아직 정확한 내용을 알지 못해도 앞으로 계속 보게될 것이니 우선은 그냥 넘어간다!
  • 위의 코드를 작성하고 저장을 하면 자바파일과 동일한 'HelloWorldApp.class' 파일이 생성되는 것을 볼 수 있다. .class 파일은 개발자가 작성한 .java 파일을 컴파일한 것이다.
  • 상단의 run 버튼을 누르면 콘솔창에 'Hello World!'가 출력된다.

자바(Java)파일이 동작하는 원리

콘솔에 "Hello World!"를 출력하는 기능을 구현하는 프로그램, 즉 애플리케이션을 만들었다. 이 기능을 구현하기 위해서 '소스(source) = 코드(code)'를 만들었다.

Java Source code(.java) > compile(JVM이 알아들을 수 있는 class파일로 변환) > Java Application(.class) > run > Java Virtual Machine(JVM, 자바 가상 머신) > run > computer

  1. 프로그램이 실행되면 JVM은 OS로부터 이 프로그램이 필요로 하는 메모리를 할당 받고, JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다.
  2. 자바 컴파일러(javac)가 자바 소스코드(.java)를 읽어들여 자바 바이트코드(.class)로 변환시킨다.
  3. class loader를 통해 class 파일들을 JVM으로 로딩한다.
  4. 로딩된 class 파일들은 execution engine을 통해 해석된다.
  5. 해석된 바이트코드는 runtime data areas에 배치되어 실질적인 수행이 이루어지게 된다. 이러한 실행과정 속에서 JVM은 필요에 따라 Thread Synchronization과 같은 GC 관리작업을 수행한다.
    (출처: 자바프로그램 실행과정)

Java Virtual Machine (JVM, 자바가상머신)

가상머신이란 프로그램을 실행하기 위해 물리적 머신과 유사한 머신을 소프트웨어로 구현한 것이다. JVM의 역할은 자바 애플리케이션을 클래스 로더를 통해 읽어 들여 자바 API와 함께 실행하는 것이다. 그리고 JVM은 JAVA와 OS 사이에서 중개자 역할을 수행하여 JAVA가 OS에 구애받지 않고 재사용을 가능하게 해준다. 그리고 가장 중요한 메모리관리, Garbage collection을 수행한다. 그리고 JVM은 스택기반의 가상머신이다. 자바 가상머신을 알아야하는 이유는 한정된 메모리를 효율적으로 사용하여 최고의 성능을 내기 위해서다.
(출처: JVM이란)

추가 지식)
src: source, 이클립스 소스 코드가 저장되는 폴더
bin: binary, 실행 파일이 저장되는 폴더

profile
어쩌다보니 백엔드 개발자/ 번아웃 없이 재밌게 개발하고 싶어요

0개의 댓글