본문 바로가기

코딩공부/JAVA

[8] 프로그래밍 이란?

프로그래밍이란 무엇인가?

 

프로그래밍 : 시간의 순서에 따라서 일어나야 하는 일을 컴퓨터에게 알려주는 일

프로그램 : 프로그래밍을 통해서 만든 결과물

프로그래밍을 이용하는 이유? 자동화된 처리를 하기 위해서

 

이 수업에서는 프로그래밍의 의미를 파악해보고, 이미 우리가 혁명적인 능력을 갖게 되었다는 것을 설득시켜드릴 것입니다.

 

public class Program {

	public static void main(String[] args) {
		System.out.println(1);
        System.out.println(2);
        System.out.println(3);
	}

}

위 3줄의 코드가 아니라 1억 줄의 코드, 사소한 코드가 아닌 너무 중요해서 잘못되면 큰일 나는 코드라고 생각해보자

그리고 이 코드가 하루에도 수십 번씩 실행되고 여러 사람이 사용하는 코드라고 상상해보자

 

컴퓨터가 갖고있는 하나하나의 기능(파일을 읽는다. 파일을 쓴다. 화면에 표시한다.)들을 우리가 하고자 하는 일의 취지에 맞게 배치를 하면 컴퓨터가 이 작업을 순차적으로 실행해 주는 것을 통해서 자동화를 할 수 있다.

 

사람이 일을 했을 때, 각각의 작업이 언제 종료되는지 알 수 없다면? 1초 만에 끝날 작업을 2일을 기다린다거나 2일이 기다리는 작업을 내내 기다린다거나...

프로그래밍을 통해서 얻을 수 있는 효과순차적으로 실행이 되는 것을 통해서 사람이 잘 못하는 일을 기계에게 위임해서 자동화할 수 있다. 그것을 해주는 컴퓨터 언어 중의 하나가 자바이고, 여러 언어중에 가장 유명한 언어이다.

 

IoT 라이브러리 설치하기

이미 만들어진 부품을 나의 프로젝트에 포함시키는 작업을 해보자

https://github.com/egoing/java-iot 에서 프로젝트를 다운로드하자

 

iot 디렉토리에 이미 만들어진 자바 코드들이 있다. 우리는 여기 있는 코드들을 이용해서 사물을 자바로 제어하는 우리들의 프로그램을 만들어 보자 어떻게 나의 프로젝트에 포함시킬 수 있을까?

다른 사람이 만든 부품을 나의 프로젝트에 포함시키기

가장 심플한 방법은 'org' 디렉토리 전체를 우리의 프로젝트 폴더로 복사한다. (드래그 in Finder and 드랍 in Eclipse)

'Copy files and folders' 선택 후 [OK] 

 

[Navigator] 에서 Programming 이라는 프로젝트에 org-opentutorials-iot 자바 파일들이 잘 이동된 것을 볼 수 있다.

[Package Explorer] 에서는 (디렉토리인 듯, 아닌 듯 보이는) '패키지'라는 것이 추가가 되고 패키지 안에 자바 코드들이 들어있다.

 

IOT 프로그램 만들기

새 클래스 생성. Package에 내용이 들어가 있다면 지워줘서 default 값이 되도록 만들고 Finish

 

org 패키지 안에 있는 자바 코드를 부품으로 사용해서 나의 애플리케이션을 만들어 보자

1. 내가 하고자 하는 일이 무엇인지 생각

2. 그 일을 하기 위해서는 어떤 일이 시간의 순서에 따라서 일어나야 되는지 정리

 

집에 돌아가는 길에 프로그램을 실행시켜서 다음 작업이 순차적으로 일어나도록 코드를 작성해보자

( org 패키지안에 있는 가짜 자바 코드를 이용해서 )

(1) 엘리베이터 호출

(2) 보안이 자동으로 off

(3) 집 안의 전등이 자동으로 on

 

코드의 맨 처음에 불러오고자 하는 클래스를 import 한다.

import org.opentutorials.iot.Elevator;

 

이렇게 클래스를 import 하면, 이후 코드에서 org.opentutorials.iot.Elevator 라고 쓰지 않고, Elevator 라고 클래스명만 적어서 사용하면 된다.

호출하려는 엘리베이터를 지정해주기 위해서 아파트 주소를  인자 값으로 하여 myElevator 객체를 생성한다.

// Elevator call 
Elevator myElevator = new Elevator("JAVA APT 507");

myElevator변수이다. ElevatormyElevator 변수의 데이터 타입이다. 즉, myElevator 변수는 반드시 Elevator 라는 데이터 타입에 해당되는 데이터만 올 수 있다.

 

myElevator 입력 후, 점(.)을 입력하면 할 수 있는 명령들 목록이 보여진다.  ()로 끝나는 명령들을 "Method(메소드)"라고 한다.

 

Light 클래스명을 쓰고 tab( 또는 ctrl + space )를 입력하면 Light라는 이름의 부품들을 보여준다. 그중에 우리가 쓰려고 하는 org.opentutorials.iot 패키지에 있는 Lighting 이라는 클래스를 더블클릭(enter)하면 자동으로 완성해주고 import 까지 자동으로 해준다.

 

다음과 같이 전체 코드를 작성 후 실행시키면 동작시킬 수 있다.

import org.opentutorials.iot.Elevator;
import org.opentutorials.iot.Lighting;
import org.opentutorials.iot.Security;

public class OkJavaGoInHome {

	public static void main(String[] args) {
		String id = "JAVA APT 507"; //My APT address
        
        // Elevator call 
        Elevator myElevator = new Elevator(id);
        myElevator.callForUp(1);
         
        // Security off 
        Security mySecurity = new Security(id);
        mySecurity.off();
         
        // Light on
        Lighting hallLamp = new Lighting(id+" / Hall Lamp");
        hallLamp.on();
         
        Lighting floorLamp = new Lighting(id+" / floorLamp");
        floorLamp.on();

	}
}

 

지금은 이 코드를 이클립스에서 실행시켰지만, 스마트폰 앱, 스마트와치, 웹, 데스크탑 애플리케이션 등 좀 더 편리한 플랫폼 위에서 자바로 동작하는 코드를 짜게 된다면 우리의 삶이 훨씬 더 윤택해질 수 있다. 프로그래밍을 통해서 많은 일을 자동화시킬 수 있다.

 

 

 

'코딩공부 > JAVA' 카테고리의 다른 글

[10] 입력과 출력  (0) 2019.10.18
[9] 디버거  (0) 2019.10.17
[7] JAVA 변수  (0) 2019.10.16
[6] JAVA 문자열 다루기  (0) 2019.10.16
[5] JAVA 숫자와 연산  (0) 2019.10.16