Java ์ธํฐํ์ด์ค ์ฝ๋ฉ ์์ ์์ฝ
์ด๋ฒ ์์์์๋ Java์์ ์ธํฐํ์ด์ค๋ฅผ ์ด๋ป๊ฒ ๋ง๋ค๊ณ , ์ด๋ฅผ ๊ตฌํํ๋ ํด๋์ค๋ฅผ ์์ฑํ๋ ๊ณผ์ ์ ๋จ๊ณ๋ณ๋ก ์ฝ๊ฒ ์ค๋ช
ํด ์ค๋๋ค. ๋ฆฌ๋ชจํธ ์ปจํธ๋กค(Remote Control) ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ณ , ์ด๋ฅผ ๊ตฌํํ๋ ์์นด(Alcica)์ ๋๋ก (Drone) ํด๋์ค๋ฅผ ํตํด ์ธํฐํ์ด์ค์ ๊ธฐ๋ณธ ๊ฐ๋
๊ณผ ํ์ฉ๋ฒ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
๋ชฉ์ฐจ
1.
2.
3.
4.
5.
6.
7.
8.
9.
์ธํฐํ์ด์ค ๋ง๋ค๊ธฐ์ ๊ธฐ๋ณธ ๊ฐ๋
์ค๋ช
[00:00:01]
โข
์ธํฐํ์ด์ค๋ โ์ค๊ณ๋โ ๊ฐ์ ์ญํ ์ ํฉ๋๋ค.
โข
์๋ฅผ ๋ค์ด โ๋ฆฌ๋ชจํธ ์ปจํธ๋กค(Remote Control)โ์ด๋ผ๋ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค๊ณ , ์ด๊ฑธ ๊ตฌํํ๋ โ์์นด(Alcica)โ์ โ๋๋ก (Drone)โ ํด๋์ค๋ฅผ ์์ฑํฉ๋๋ค.
โข
์ธํฐํ์ด์ค๋ โ์์โ์ โ์ถ์ ๋ฉ์๋โ๋ฅผ ์ ์ธํ ์ ์์ต๋๋ค.
์ธํฐํ์ด์ค ๋ด ์์์ ์ถ์ ๋ฉ์๋ ์ ์ํ๊ธฐ [00:01:35]
โข
์ธํฐํ์ด์ค ์์๋ โ์ต์ ์๋ ฅ(minSpeed)โ, โ์ต๊ณ ์๋ ฅ(maxSpeed)โ ๊ฐ์ ์์๋ฅผ ์ ์ธํฉ๋๋ค.
โข
โ์ถ์ ๋ฉ์๋โ๋ ๋ฉ์๋์ ์ด๋ฆ๊ณผ ๋งค๊ฐ๋ณ์๋ง ์ ์ธํ๊ณ , ์ค์ ๋ด์ฉ์ ๊ตฌํ ํด๋์ค์์ ์์ฑํฉ๋๋ค.
โข
์) ์ ์ ์ผ๊ธฐ(onPower), ์ ์ ๋๊ธฐ(offPower), ์๋ ์กฐ์ (setSpeed) ๊ฐ์ ๋ฉ์๋
์ดํด๋ฆฝ์ค์์ ์ธํฐํ์ด์ค ๊ตฌ์กฐ ์ดํด๋ณด๊ธฐ (static final, public abstract) [00:02:57]
โข
์ธํฐํ์ด์ค์ ์ ์ธ๋ ๋ณ์๋ ์๋์ผ๋กย static finalย (๋ณํ์ง ์๋ ์์)๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
โข
์ถ์ ๋ฉ์๋๋ ์๋์ผ๋กย public abstract๊ฐ ๋ถ์ต๋๋ค.
โข
์๋ฅผ ๋ค์ด,ย int MAX_SPEED = 10;๋ ์ค์ ๋กย public static final int MAX_SPEED = 10;์ ๊ฐ์ต๋๋ค.
โข
์ดํด๋ฆฝ์ค์ โ์์๋ผ์ธโ ํญ์์ ์ฝ๊ฒ ํ์ธํ ์ ์์ต๋๋ค.
์ถ์ ๋ฉ์๋์ ๋ํดํธ ๋ฉ์๋ ์ฐจ์ด์ [00:05:44]
โข
์ถ์ ๋ฉ์๋๋ ๊ตฌํ ํด๋์ค์์ ๋ฐ๋์ ์ค๋ฒ๋ผ์ด๋ฉ(์ฌ์ ์)ํด์ผ ํฉ๋๋ค.
โข
๋ํดํธ ๋ฉ์๋๋ ์ธํฐํ์ด์ค ์์์ ๊ธฐ๋ณธ ๊ตฌํ(์ฝ๋)์ ์ ๊ณตํ๋ ๋ฉ์๋๋ก, ๊ตฌํ ํด๋์ค์์ ์ ํ์ ์ผ๋ก ์ค๋ฒ๋ผ์ด๋ฉํ ์ ์์ต๋๋ค.
โข
์๋ฅผ ๋ค์ด, โ๋ฐฐํฐ๋ฆฌ ๊ต์ฒดโ ๊ฐ์ ๊ธฐ๋ฅ์ ๋ํดํธ ๋ฉ์๋๋ก ์ธํฐํ์ด์ค์ ๋ฃ์ ์ ์์ต๋๋ค.
์ธํฐํ์ด์ค ๊ตฌํ ํด๋์ค ์์ฑ (์์นด ํด๋์ค) [00:10:49]
โข
implementsย ํค์๋๋ฅผ ์ฌ์ฉํด ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํฉ๋๋ค.
โข
์์นด ํด๋์ค๋ ๋ฆฌ๋ชจํธ ์ปจํธ๋กค ์ธํฐํ์ด์ค์ ์ถ์ ๋ฉ์๋๋ฅผ ๋ชจ๋ ์ค๋ฒ๋ผ์ด๋ฉํด์ ๊ตฌ์ฒด์ ์ธ ๋์์ ์์ฑํฉ๋๋ค.
โข
์) ์ ์ ์ผ๊ธฐ ์ "์์นด ์ ์ ON" ์ถ๋ ฅ, ์๋ ์กฐ์ ์ ๋ด๋ถ ๋ณ์์ ๊ฐ ์ ์ฅ
๋๋ก ํด๋์ค ๊ตฌํ ๋ฐ ๋ณต์ฌ ํ์ฉ๋ฒ [00:18:33]
โข
๋๋ก ํด๋์ค๋ ์์นด ํด๋์ค์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฆฌ๋ชจํธ ์ปจํธ๋กค ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํฉ๋๋ค.
โข
์์นด ํด๋์ค ์ฝ๋๋ฅผ ๋ณต์ฌํด์ ๋๋ก ํด๋์ค์ ๋ถ์ฌ๋ฃ๊ณ , ์ด๋ฆ์ด๋ ์ถ๋ ฅ ๋ฉ์์ง๋ง ๋ฐ๊พธ๋ฉด ์ฝ๊ฒ ์์ฑํ ์ ์์ต๋๋ค.
โข
์ด๋ ๊ฒ ํ๋ฉด ์ฝ๋ ์์ฑ ์๊ฐ์ ์ค์ผ ์ ์์ต๋๋ค.
๊ฐ์ฒด ์์ฑ๊ณผ ๋ฉ์๋ ํธ์ถ ์ค์ต (๋๋ผ์ด๋ฒ ํด๋์ค) [00:31:05]
โข
๋๋ผ์ด๋ฒ ํด๋์ค๋ฅผ ๋ง๋ค์ด ์์นด์ ๋๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค.
โข
๊ฐ ๊ฐ์ฒด์ ๋ฉ์๋๋ฅผ ํธ์ถํด ์ ์ ์ผ๊ธฐ, ์๋ ์กฐ์ , ๋ฐฐํฐ๋ฆฌ ๊ต์ฒด ๋ฑ์ ๊ธฐ๋ฅ์ ์คํํด ๋ด
๋๋ค.
โข
์)ย sika.onPower();,ย drone.setSpeed(10);
์ธํฐํ์ด์ค ํ์ฉ ์์์ ๋ฆฌ๋ชจ์ปจ ๊ฐ๋
์ ๋ฆฌ [00:37:02]
โข
ํ๋์ ๋ฆฌ๋ชจํธ ์ปจํธ๋กค ์ธํฐํ์ด์ค๋ฅผ ํตํด ์์นด ์๋์ฐจ์ ๋๋ก ๋ชจ๋๋ฅผ ์กฐ์ข
ํ ์ ์์ต๋๋ค.
โข
๋ง์น ํ๋์ ๋ฆฌ๋ชจ์ปจ์ผ๋ก TV์ ์
ํฑ๋ฐ์ค๋ฅผ ๋ชจ๋ ์กฐ์ํ๋ ๊ฒ๊ณผ ๋น์ทํ ๊ฐ๋
์
๋๋ค.
โข
์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์ํ ํด๋์ค๊ฐ ๊ฐ์ โ์กฐ์๋ฒโ์ ๊ณต์ ํ ์ ์์ด ํธ๋ฆฌํฉ๋๋ค.
๋ง๋ฌด๋ฆฌ ๋ฐ ์ธํฐํ์ด์ค ์ค์ต ์์ฝ [00:40:22]
โข
์ธํฐํ์ด์ค๋ ์ถ์ ๋ฉ์๋์ ์์๋ฅผ ์ ์ธํด โ๊ท์นโ์ ์ ํ๊ณ ,
โข
์ด๋ฅผ ๊ตฌํํ๋ ํด๋์ค๋ ๋ฐ๋์ ์ถ์ ๋ฉ์๋๋ฅผ ๋ชจ๋ ๊ตฌํํด์ผ ํฉ๋๋ค.
โข
๋ํดํธ ๋ฉ์๋์ static ๋ฉ์๋๋ ์ธํฐํ์ด์ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
โข
์ด๋ฒ ์ค์ต์ ํตํด ์ธํฐํ์ด์ค์ ๊ธฐ๋ณธ ๊ฐ๋
๊ณผ ํ์ฉ๋ฒ์ ํ์คํ ์ตํ ์ ์์์ต๋๋ค.
์ ๋ฆฌ
์ด๋ฒ ์์์์๋ Java ์ธํฐํ์ด์ค๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ๋ถํฐ, ์ด๋ฅผ ๊ตฌํํ๋ ํด๋์ค ์์ฑ, ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฒด ์์ฑ๊ณผ ๋ฉ์๋ ํธ์ถ๊น์ง ์ค์ตํ๋ฉฐ ์ธํฐํ์ด์ค์ ํต์ฌ ๊ฐ๋
์ ์ฝ๊ฒ ๋ฐฐ์ ์ต๋๋ค. ์ธํฐํ์ด์ค๋ ์ฌ๋ฌ ํด๋์ค๊ฐ ๊ฐ์ ๊ธฐ๋ฅ์ ๊ณต์ ํ๋๋ก ๋์์ฃผ๋ โ์ฝ์โ ๊ฐ์ ์ญํ ์ ํ๋ฉฐ, ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ๋์ฌ์ค๋๋ค. ์์ผ๋ก Java ํ๋ก๊ทธ๋๋ฐ์์ ์ธํฐํ์ด์ค๋ฅผ ํ์ฉํ๋ ๋ฐ ํฐ ๋์์ด ๋ ๊ฑฐ์์!