본문 바로가기

코딩공부/JAVA

[2] 자바 애플리케이션 실행 & Java의 동작 원리

이클립스 구성

  • Package Explorer :  프로젝트 폴더를 관리하는 도구 ( 프로그램을 개발할 때 편리하도록 화면을 바꿔서 보여준다. 숨김파일 안보여줌)
  • [Window] > [Show view] > [Navigator] (deprecated) : 프로젝트 폴더를 있는 그대로 보여준다.
  • Outline : 소스코드에 있는 여러가지 문법적인 요소들을 시각적으로 표시해서, 어떤 요소들로 이 프로그램이 구성돼있는지를 일목요연하게 보여주고, 자신이 필요한 것을 빠르게 찾을 수 있도록 도와준다.
  • Problems : 문제가 발생했을 때, 문제들을 알려준다.
  • Console : 코드의 실행결과가 콘솔이라는 뷰에서 출력된다.
  • 소스코드를 작성하는 에디터

[Window] > [Perspective] > [Open Perspective] > Debug, Java Browsing

Debug : 디버그 작업을 하는데 있어서 필요로할만한 요소들을 이클립스에서 생각하기에 가장 효율적인 방법으로 배치해놓은 'View들의 모임' 이면서 '배치' 이다.

[Window] > [Perspective] > [Open Perspective] > Java : 자바 개발 환경 Perspective

 

프로젝트 구성

  • src (source) : .java 확장자 파일 - 작성한 코드 파일 ( 사람이 이해할 수 있는 언어로 작성된 코드 )
  • bin (binary) : .class 확장자 파일(실행파일) - 이클립스를 통해서 컴파일된 파일 ( 컴퓨터가 이해할 수 있는 언어로 번역된 파일 )

 

Package : (현 시점에서) 디렉토리, 폴더의 개념으로 알아두고 넘어가기. 동일한 이름의 파일을 카테고라이징 해줄 수 있다.

 패키지명 : 도메인주소 사용 (관습)

    - 패키지명이 중복되는 문제를 미연에 방지하기 위해서 중복될 가능성이 현저히 낮은 '도메인주소'를 사용한다. 

     도메인은 중복되지 않는 유일한 값, 식별자 이기 때문
     자신이 소유하고 있거나 운영중인 또는 프로젝트와 관계되어있는 도메인 주소를 사용하면 된다.

class : 자바 프로그램의 가장 기본적인 단위

  [패키지] 선택 후, 우클릭 > [New] > [class] 패키지에 소속되는 클래스를 생성한다.

 

com.example 이라는 패키지에 ExampleClass라는 이름의 클래스를 생성했다.

 

프로젝트 생성

[File] > [New] > Java Project 

 

  • Location : 프로젝트를 생성할 디렉토리 경로(자동으로 프로젝트명과 동일하게 생성되는데 달라도 상관 없다.)
  • Project name : 프로젝트명
  • JRE(Java Runtime Environment) : 앞서 설치한 자바를 의미. 기본 설정값으로 사용하면 된다.
    자바가 실제로 동작하는 데 필요한 JVM라이브러리각종 파일들이 포함되어 있다. 자바로 만들어진 프로그램을 구동하려고 한다면 이것을 설치한다. 일반인을 위한 자바 버전이라고 할 수 있다.
  • Project layout : 프로젝트 폴더의 구조를 어떻게 할 것인지 지정
     1. 소스코드를 저장할 폴더 2. 소스코드를 컴파일한 결과를 저장할 폴더를 지정
     - 'Use project folder as root for sources and class files' : 최상위 디렉토리(root)에 소스코드와 (컴파일된 실행파일인) class 파일을 모두 같은 곳에 둔다.
     - 'Create separate folders for sources and class files' : 소스코드와 (컴파일된 실행파일인) class 파일을 다른 곳에 두겠다.
       > [Configure default..]
      Source folder name : 'src'  소스코드 저장
      Output folder name : 'bin' 컴파일한 결과로 생성된 실행파일을 저장

 


(첫 번째 옵션 선택 후, Next> )

 

Source : HelloWorld "소스코드는 'HelloWorld'라는 프로젝트 디렉토리 밑에 저장될 것이다."라는 의미

Default output folder : HelloWorld "컴파일된 결과는 'HelloWorld' 라는 프로젝트 디렉토리 밑에 생성될 것이다."라는 의미

 

Finish를 누르면, ~JavaProjects/eclipse-workspace (워크스페이스) 디렉토리 하위의 HelloWorld 프로젝트 폴더가 생성된다.

( command + shift + . : 숨김파일 보이기) 이클립스가 필요해서 만든 디렉토리 및 파일이 생성되어있는 것을 볼 수 있다.

 

자바 애플리케이션 만들기

[프로젝트] 우클릭 > [New] > [File]

File name : HelloWorldApp.java

 

 

( 'Navigator' 와 'Package Explorer' 을 비교해보면서 실습 )

  1. public class HelloWorldApp{} 에서 HelloWorldApp은 생성한 File명과 같아야 한다.
    추후에 HelloWorldApp.class 파일을 실행시키면 자바는 HelloWorldApp이라는 (파일의 이름과 똑같은) 클래스를 찾기 때문에 이름이 같아야한다.
  2. 그 후, 클래스 안에 main() 이라고 하는 약속된 이름의 메소드를 찾는다.
  3. 그리고 그 중괄호({})안에 위치하는 코드를 실행하도록 약속되어 있다.

 

public class HelloWorldApp{
	public static void main(String[] args) {
		System.out.println("Hello World!!!");
	}
}
  1. 화면에 'HelloWorld'를 출력하는 코드를 작성해보자
  2. '저장'하면 프로젝트 디렉토리에 HelloWorldApp.class 라는 이름의 클래스 파일이 생성된다.
    ( Package Explorer 에서는 class 확장자 파일은 숨김처리돼서 보여지지 않는다. )
  3. '실행'하면 Console 창에 'Hello World!!!' 가 출력된다.
    코드화면 우클릭 > [Run As] > [Java Application] : 작성한 코드를 자바 애플리케이션으로서 실행한다.

 

 


Java의 동작원리

소프트웨어를 구성하는 양대 개념

(*각 표현은 같은 대상을 바라보는 관점에 따라서 다르게 사용하는 표현일 뿐이다.)

  • source : 원인, 원천
  • code : 부호, 기호
  • language : '  약속'이라는 측면에서 언어라는 표현 사용

 

  • application : 소스코드(언어)로 만들어진 결과
  • program

'자바'라는 컴퓨터 프로그래밍 언어의 문법에 맞게 코드를 작성해서 컴퓨터에게 시키고 싶은 일을 시키는 것이 우리가 하고자 하는 일이다.

 

 

자바 동작 순서

  1. 컴퓨터에 '자바'라는 프로그램을 설치했다. (jdk)
    여러가지 설치파일 중, JVM(Java Virtual Machine)이라는 프로그램이 컴퓨터에 깔려있는 상태이다.
  2. 하고자하는 일을 담은 확장자가 .java 인 파일을 작성 했다.
    .java 파일 : 자바라는 컴퓨터언어의 문법에 맞게 만들어진 소스 코드. 소스코드는 사람이 이해할 수 있고, 기계는 직접 이해할 수 없다.
  3. 컴파일(Compile) : 기계가 .java 파일을 이해할 수 있는 .class 파일로 전환하는 작업
    이클립스에서 소스코드를 작성 후, 저장 버튼을 눌렀을 때 자동으로 .class 라고하는 확장자를 파일이 만들어 진다.
  4. .class 파일 : '자바 애플리케이션' 이다.
  5. 이클립스에서 Run 버튼을 누르면, 이클립스가 JVM한테 .class 파일을 실행하라고 명령한다. JVM이 확장자가 class인 파일을 읽어서 코드의 내용대로 컴퓨터를 동작 시키게 된다.