본문 바로가기

생활코딩/JAVA1

생활코딩) JAVA1 - 9.3. IOT 프로그램 만들기

youtu.be/x4LXhjzv8q4

 

자 그러면 우리 자바를 이용해서 우리집에 있는 여러가지 사물들을 제어해서 우리의 삶을 획기적으로 높이는 프로그램을 또 애플리케이션을 한번 만들어 봅시다. 자 여기 프로그래밍 이라는 프로젝트 에다가 저는 클래스를 만들 건데요 클래스 이름은 제가 만든 라고 하는 프로그램의 이름은 OkJavaGoInHome

 

org 라고 하는 저거 저런 걸 패키지 라고 해요. 저 패키지 안에 있는 프로그램들을 부품으로 사용해서 애플리케이션을 만들어 볼 거에요 남이 만든 코드를 부품으로 나의 애플리케이션을 만들어가는 겁니다. 자 이걸 하기 위해서 우리가 제일 먼저 해야 될 것은 생각을 해야 돼요.  내가 지금 하려고 하는 일이 뭐냐 그리고 그 일을 하기 위해서는 어떤 일이 시간의 순서에 따라서 일어나야 되냐 라는 것을 먼저 정리를 하셔야 됩니다. 

자 제가 하고자 하는 일은 제가 집에 갈때 항상 반복적으로 내가 해서 너무 귀찮았던 이를 자바한테 시키고 싶은 거예요. 첫 번째 엘리베이터를 콜 한다.  제가 집에 도착하기 뭐 한 5분 10분 전에 실행을 시키면 엘리베이터가 1층에서 대기할 수 있도록 하는 거죠 자 그리고 엘리베이터 올라간 다음에 그 다음에 시큐리티가 자동으로 꺼져 쓰면 좋겠어요. 귀찮으니까 그리고 집에 불이 있는데 집에 들어갔는데 이게 불 꺼져 있으면 좀 기분이 안 좋잖아요 그래서 불이 기본적으로 자동으로 켜졌으면 좋겠어요. 그리고 뭐 에어컨을 켠다든지 이런 작업들을 자동으로 해 줄 수가 있겠죠.

제가 만든 가짜 코드를 한번 이용해 볼 건데요. 어디에 있다구요 org - opentutorials - iot 밑에 있는 요것들이에요. 

자 그 중에서 여기 Elevator.java 라고 하는 저 코드를 이용해서 제가 엘리베이터로 호출하는 코드를 한번 여기다 가짜 볼 겁니다.

여러분이 모르는 문법이 나온다고 초조하거나 불안해할 필요가 전혀 일도 없다 라는 겁니다 자 여기다가 이렇게 합니다

import org.opentutorials.iot.Elevator;
public class OkJavaGoInHome {

	public static void main(String[] args) {

		// Elavator call 
		Elevator
		
		// Security off
		
		// Light on
		
	}

}


저는 org 라는 패키지 밑에 opentutorials 라는 패키지 밑에 iot 라는 패키지 밑에 엘리베이터 라고 하는 요거 를 이용해서 엘리베이터로 출 할 거에요 자 근데 이렇게 제가 다 쓰니까 너무 길죠. 그럼 이제 이걸 어떻게 하면 되냐면 젤 위에다가 import하고 엘리베이터
라고 하는 이 클래스를 불러온 거에요 클래스가 뭔지 우리 아직 그 정의를 아직 잘 몰라요. 자 이렇게 여러분이 임포트 를 이렇게 하게되면 은 이렇게 길게 쓸 필요가 없이 그냥 엘리베이터 라고 말하면 엘리베이터는 요건 거에요. 

import org.opentutorials.iot.Elevator;
public class OkJavaGoInHome {

	public static void main(String[] args) {

		// Elavator call 
		Elevator myElevator = new Elevator("JAVA APT 507");
		
		// Security off
		
		// Light on
		
	}

}


여러분 여기 있는 요 myElevator 쟤는 뭐예요. 형식을 보니까 변수에요. 그럼 앞의 Elevator라는 쟤는 뭐겠어요.  변수의 데이터 타입인 거예요. 즉 myElevator 라는 변수는 반드시 Elevator 라는 데이터 타입의 해당되는 데이터만 올 수 있다 그럼 여기잇는 얘는 엘리베이터 라는 데이터 타입인 거에요

myElevator에다가 점 을 하면 이렇게 우리한테 이것저것 추천 해 주거든요. 그럼 그 중에서 제가 지금 하려는 게 뭐예요

import org.opentutorials.iot.Elevator;
public class OkJavaGoInHome {

	public static void main(String[] args) {

		// Elavator call 
		Elevator myElevator = new Elevator("JAVA APT 507");
		myElevator.callForUp(1);
		
		// Security off
		
		// Light on
		
	}

}


엘리베이터를 1층으로 추출하는 거에요 그때 나는 위로 올라 갈 거다 라고 하는 의미를 가지고 1층으로 출 해야 되기 때문에 콜 후
업 그리고 어디로 라구요 1층으로 올라 갈 건데 1층으로 엘리베이트 보네 라고 엘리베이터 한테 제가 명령한 거란 말이에요 했죠.

자 그 다음엔 제가 시큐리티 를 끌 건데 시큐리티 는 여기 있습니다. mySecurity에서 점을 하면은 제가 사용할 수 있는 여러가지 명령들이 있습니다. 여러분 저렇게 괄호로 시작해서 괄호 로 끝나는 저런 명령은 메쏘드 라고 해요. 자꾸 이런 용어가 조금씩 조금씩 익숙하다 가 나중에 확 배우시면 됩니다. 

 

자 그 다음에 이제 제가 불을 킬 건데요 자 부른 여기에 있는 라이트. 여기에다가 또 임포트 를 하면 되겠지만 이거 좀 귀찮단 말이죠 그럼 어떻게 하면 되냐면 이클립스가 이거 완전 대박 도구에요. 제가 라이트 라고 하고 Ctrl+Space 를 치면 라이트 라는 이름의 부품들을 보여줍니다. 그중에 우리가 쓰려고 하는 건 org.opentutorials..iot 라는 패키지에 속해있는 라이팅 이라는 클래스 인데 그걸 추천해줘요 더블클릭하면 자동으로 완성해 주고 여기에 임포트 하니까 자동으로 해줍니다 완전 대박 기능이죠.


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

public class OkJavaGoInHome {

	public static void main(String[] args) {

		// Elavator call 
		Elevator myElevator = new Elevator("JAVA APT 507");
		myElevator.callForUp(1);
		
		// Security off
		Security mySecurity = new Security("JAVA APT 507");
		mySecurity.off();
		
		// Light on
		Lighting hallLamp = new Lighting("JAVA APT 507 / HallLamp");
		hallLamp.on();
		
		Lighting floorLamp = new Lighting("JAVA APT 507 / floorLamp");
		floorLamp.on();
		
	}

}


자 여러분 상상력을 쓰세요.  코드를 실행을 하니까 엄청난 일이 일어난 거예요

더보기


JAVA APT 507 -> Elevator callForUp stopFloor : 1
JAVA APT 507 -> Security off
JAVA APT 507 / HallLamp -> Lighting on
JAVA APT 507 / floorLamp -> Lighting on

 

자바 아파트 500 치로 가 소속된 엘리베이터가 호출해서 1층으로 내려가기 시작했고 요 그리고 저희 집에 보안이 해제가 됐고요. 그리고 거실에 있는 등과 예 스탠드 등이 켜졌단 말이죠 그럼 지금 우리는 이것을 이클립스에서 실행을 시킨 것이 이지만 애가 이클립스 가 아니라 여러분 그 스마트폰의 앱 이라든지 또는 스마트와치 라든지 또는 웹 이라든지 또 데스크탑 애플리케이션 이라는 지 이러한 좀 더 편리한 플랫폼 위에서 자바로 동작하는 이런 코드를 짜게 된다면 우리의 삶이 훨씬 더 윤택해 질 겁니다. 그리고 이것을 통해서 우리가 알 수 있는 것은 아 요렇게 프로그래밍을 통해서 일을 자동화 시킬 수 있겠구나 라는 것을 우리가 음미해 볼 수 있는 코드 라는 겁니다.

 

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";

		// Elavator 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+" / HallLamp");
		hallLamp.on();
		
		Lighting floorLamp = new Lighting(id+" / floorLamp");
		floorLamp.on();
		
	}

}


자 그러면 이거 좀 정리를 좀 할게요 여기 있는 코드에서 제가 조금 거슬리는 부분은 이 부분("JAVA APT 507")이 중복 되거든요.

그럼 이런 것들은 스트링 id 는 이렇게 해주면 이 아이디를 어디다가 이렇게 적용 해요 여기도 적용하고 여기도 적용하고 여기는 이렇게 한 다음에 id 플러스 여기도 이렇게 한 다음에 id 플러스 하게 되면 어때요. 동작은 똑같지만 예 중복이 제거가 됐고 요거만 바꾸면 나머지 것들이 한방에 바뀌는 폭발적 인 효과를 갖게 된다 라는 겁니다.


------

* 유튜브 강의에서 자막을 추출해 정리했습니다.

------

 

1. 패키지의 코드를 불러올 때는 java파일의 이름 + ctrl + space 하면 이클립스에 있는 다른 클래스를 추천해주고 불러올 수 있다

2. 중복되면 간소화하려 노력하기.

3. 변수_'.' 하면 여러 명령(메쏘드)를 추천해준다.

4. 괄호로 시작해서 괄호 로 끝나는 명령은 메쏘드라고 한다.

반응형