JAVA 애플리케이션 구현 및 실행, JAVA 동작 원리, JAVA 기술의 응용

JAVA 애플리케이션 구현 및 실행

  • Package Explorer: 소스 코드나 이미지 파일 모아두는 프로젝트 폴더 관리하는 화면 (대신 Navigator 써도 됨!)

  • Package ExplorerNavigator의 차이: Navigator는 프로젝트 폴더를 있는 그대로 보여주는 반면 Package Explorer는 프로그램 개발에 편리하도록 화면을 바꿔 보여줌 (특정 파일을 숨기는 등)


1. 자바 프로젝트 및 파일 생성

  • File > New > Java Project

  • Project Name과 Location은 임의 지정 가능하며, 서로 달라도 됨!

  • JRE(Java Runtime Environment) = JVM(Java Virtual Machine) = 설치한 자바 프로그램

  • Project layout: 폴더 구조 설정
    ✅ Use project folder as root for sources and class files: 소스 코드와 소스 코드가 컴파일된 실행 파일인 클래스 파일을 프로젝트의 최상위 디렉토리에 둠
    ✅ Create separate folders for sources and class files: 소스 코드와 소스 코드가 컴파일된 실행 파일인 클래스 파일을 다른 곳에 둠

Source folder: 소스 코드 위치할 폴더
Output folder: 클래스 파일 위치할 폴더

  • 프로젝트 폴더의 지정한 Source folder에 File 추가 (New > File)
    @.java 형식

  • 바로 Class 파일 추가해줘도 됨 (New > Class)


2. 코드 작성

특정 파일을 실행시키면 자바는 그 파일과 이름이 동일한 클래스를 찾아 그 안의 main함수를 실행하기 때문에 파일과 클래스의 이름은 동일해야 함
→ 코드는 main함수 안에 작성해야 함

public class HelloWorldApp {
	public static void main(String[] args) {
		System.out.println("Hello, World!");
	}
}

3. 저장 및 실행

  • 저장 Ctrl+S 버튼을 누르면 .java 파일이 컴파일 과정을 거쳐 .class 파일이 생성됨

  • Run as > 1 Java Application.class 파일 실행

.java 파일: 사람이 읽고 쓸 수 있는 소스 코드 들어 있음
.class 파일: 기계가 읽고 쓸 수 있는 정보 들어 있음


JAVA의 동작 원리

🌙 원인
source = code = language
(같은 대상을 바라보는 관점에 따라 다르게 나타내는 표현일 뿐임)

🌙 결과
application = app = program
(같은 대상을 바라보는 관점에 따라 다르게 나타내는 표현일 뿐임)


JAVA 기술의 응용

JAVA를 통해 할 수 있는 일들

1. 데스크탑 애플리케이션 만들기

1) "Hello World!!" 문자열 출력하는 데스크탑 애플리케이션 만들기

import javax.swing.*;   
import java.awt.Dimension;
import java.awt.Toolkit;
public class HelloWorldGUIApp{
    public static void main(String[] args){
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                JFrame frame = new JFrame("HelloWorld GUI");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setPreferredSize(new Dimension(400, 300));
                JLabel label = new JLabel("Hello World!!", SwingConstants.CENTER);
                frame.getContentPane().add(label);
                Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
                frame.setLocation(dim.width/2-400/2, dim.height/2-300/2);

                frame.pack();
                frame.setVisible(true);
            }
        });
    }
}

2. 사물 제어하기 (IOT)

1) 라즈베리 파이 이용해 Hello World 모스 부호로 LED 점멸하게 하기

사물인터넷 (Internet Of Things) : 사물이 인터넷에 연결돼 프로그래밍적으로 제어됨
라즈베리 파이(Raspberry Pi): 교육용 사물인터넷 컴퓨터

  • WindowsLinux 같은 운영체제 설치되어 있음

  • Java → 라즈베리 파이:: n번 핀에 전기 흐르게 하도록 명령 내릴 수 있음
    → 이러한 방식으로 지구상의 수많은 사물을 기계적으로 자동화된 방법으로 제어할 수 있게 됨

import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin;

public class HelloWorldRaspberryPi {

	public static void main(String[] args) throws InterruptedException {

		final GpioController gpio = GpioFactory.getInstance();
		final GpioPinDigitalOutput pin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_01, "PinLED", PinState.LOW);
		final int SHORT_INTERVAL = 200;
		final int LONG_INTERVAL = SHORT_INTERVAL * 3;
		final int LETTER_INTERVAL = SHORT_INTERVAL * 7;

		while (true) {
			// H
			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(SHORT_INTERVAL);
			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(SHORT_INTERVAL);
			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(SHORT_INTERVAL);
			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(LETTER_INTERVAL);

			// e
			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(LETTER_INTERVAL);

			// l
			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(SHORT_INTERVAL);

			pin.high();
			Thread.sleep(LONG_INTERVAL);
			pin.low();
			Thread.sleep(SHORT_INTERVAL);

			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(SHORT_INTERVAL);
			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(LONG_INTERVAL);

			// l
			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(SHORT_INTERVAL);

			pin.high();
			Thread.sleep(LONG_INTERVAL);
			pin.low();
			Thread.sleep(SHORT_INTERVAL);

			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(SHORT_INTERVAL);
			pin.high();
			Thread.sleep(SHORT_INTERVAL);
			pin.low();
			Thread.sleep(LONG_INTERVAL);
		}
	}
}

3. 안드로이드 애플리케이션 만들기

1) "Hello World!!" 문자열 출력하는 안드로이드 애플리케이션 만들기

Android Development Documentation > 시작하기 > 첫 앱 빌드하기 문서 참고

Android Studio: 안드로이드 개발할 때 필요한 여러 도구들 통합하여 제공하는 개발 도구

좋은 웹페이지 즐겨찾기