2022๋ 2ํ๊ธฐ ์บก์คํค๋์์ธ์์ ์งํํ ์ฐํํ๋ ฅ ํ๋ก์ ํธ์ด๋ค.
์ด๋ฒ ํ๋ก์ ํธ๋ ์ค๊ณ ์ ์๊ฐ 60%์ธ ์ค๊ณ ์ค์ฌ์ ํ๋ก์ ํธ์๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐํํ๋ ฅ ํ๋ก์ ํธ์ธ ๋งํผ ๊ธฐ์ ๋ฉํ ๋๋ค์ ๋์์ ๋ฐ์ ์ ์์๋ค.
์ด๋ฒ ํ๋ก์ ํธ๋ ๋ด๊ฐ ์ง์ ๋์์ ํ์ ๊ตฌ์ฑํ๋ค. ๊ฐ์ด ๋ฉ์์ด์ฌ์์ฒ๋ผ ํ๋์ ํ๊ณ ์๋ 3๋ช + ๊ฐ์ ๊ณผ 1๋ช + ๋ ๊น์ง ํด์ ์ด 5๋ช ์ ํ์ด ์ด๋ฃจ์ด์ก๋ค. ๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ํ ๋ํ๋ก์ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค.
๋จผ์ ํฐ ์ฃผ์ ๋ ๊ต์๋์ด ๋ฆฌ์คํธ ํด๋ ๊ฒ ์ค์ ์ ํํด์ผ ํ๋ค(์์ ์ฃผ์ ๋ฅผ ์ํ์ง๋ง). ์ฐ๋ฆฌ ํ์ 'IoT๋ฅผ ํ์ฉํ ์ง๋ฅํ ์๋ฆฌ๋ถ์'์ด๋ผ๋ ์ฃผ์ ๋ฅผ ์ ํํ๋ค.
ํฐ ์ฃผ์ ๋ฅผ ์ ํ์ผ๋ฉด ๊ตฌ์ฒด์ ์ธ ์ฃผ์ ๋ฅผ ์ ํ๊ณ ํ๋ก์ ํธ ์ค๊ณ๋ฅผ ์งํํ๋ฉด ๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ ํ์ ๊ตฌ์ฒด์ ์ธ ์ฃผ์ ์ ์ ๊ณผ์ ์์ ๋ง์ ์ด๋ ค์์ด ์์๋ค. ์ด๋ ค์์ ๊ฒช์ ์ด์ ๋ ์๋์ ๊ฐ์ด ํ๋จ๋๋ค.
๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์์ด๋์ด๋ฅผ ๊ตฌ์ฒดํํด๋ณด๊ณ ์๋๋ค ์ถ์ผ๋ฉด ๋น ๋ฅด๊ฒ ๋ณ๊ฒฝํ๋ค. ๊ทธ๋ฌ๋ฉด์ 3๋ฒ์ (๊ตฌ์ฒด์ ์ธ)์ฃผ์ ๋ณ๊ฒฝ์ด ์์๋ค.
(์๋๋ ๊ฐ ํ๊ธฐ๋ ์ฃผ์ ๋ค์ ๋ํด ๊ธ์ ์์ฑํ๊ณ ์๋ค๊ฐ ์ด ํ๊ณ ๋ก์ ํฌ์ธํธ๊ฐ ํ๋ ค์ง ๊ฒ ๊ฐ์ ๋ ธ์ ๋งํฌ ์ฒจ๋ถ๋ก ๋ณ๊ฒฝํ๋ค)
์ด ์ฃผ์ ๋ค์ด ํ๊ธฐ๋ ์ด์ ๋ ์๊น ์ธ๊ธํ 3๊ฐ์ง์ ์ด์ ๋๋ฌธ์ด๋ค.
๊ฒฐ๊ตญ ์ ํด์ก๋ค!! ์ฃผ์ ์ ์ ์ ๋ง์ ์๊ฐ์ ์์ํ์ง๋ง ์ด๊ฒ์ด ๊ฐ์ฅ ์ค์ํ๊ณ , ์ข์ ์ฃผ์ ๊ฐ ์ค์ ๋๋ฉด ์ค๊ณ ๋ฐ ๊ตฌํ์ ๋น ๋ฅด๊ฒ ์งํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค.
Team Name : Louder
Project Big Topic : IoT๋ฅผ ํ์ฉํ ์ง๋ฅํ ์๋ฆฌ๋ถ์
Project Small Topic : ์จ์ด๋ฌ๋ธ ์ฅ์น๋ฅผ ํ์ฉํ ์๋ ์ ๋ณ๋ณดํธ ์๋น์ค
์๋น์ค ๋์ : ๋ณดํธ๊ฐ ํ์ํ ์์ ์ ๋ฐ ๋ฏธ์ทจํ ์๋(์ฝ 6์ธ ๋ถํฐ 12์ธ ์ดํ)์ ๋ณดํธ์
์ ์ฉ ํ๊ฒฝ : ์์ด๊ฐ ๋ณดํธ์๋ก ๋ถํฐ ๋จ์ด์ ธ์์ ๋, ๋ฒ์ฃ๋ก๋ถํฐ ๋ณดํธ๊ฐ ํ์ํ ๊ฒฝ์ฐ
๋ฌผ๋ก ๊ธฐ์กด์๋ ์๋ ์ ๋ณ๋ณดํธ ์ฅ์น๊ฐ ์๊ธดํ๋ค. ์ฐ๋ฆฌ ํ์ ๊ธฐ์กด ์ ๋ณ๋ณดํธ ์ฅ์น์ ์ฐจ๋ณ์ ์ผ๋ก ์๋ฆฌ ์ธ์ ๋ฐ ๋ถ๋ฅ๋ฅผ ํตํ ์๋ฆผ ๊ธฐ๋ฅ์ ๋ํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค.
์ฐ๋ฆฌ ํ์ ์๋์ด๋ ธ(2)+๋ชจ๋ฐ์ผ(1)+์๋ฒ(1)+์ธ๊ณต์ง๋ฅ(1)์ผ๋ก ์ญํ ๋ถ๋ด์ ํ๋ค. ๋๋ ์๋ฒ์ ํ ๋ฆฌ๋๋ฅผ ๋ด๋นํ๋ค.
๐ฝ ์์ธํ ์ค๊ณ ๋ด์ฉ์ ์๋ ๋
ธ์
๋งํฌ์์ ํ์ธ ๊ฐ๋ฅํ๋ค.
๊ณํ ๋ฐ ์ค๊ณ
์ฐ๋ฆฌ ํ ์๋น์ค์ ํต์ฌ์ ์จ์ด๋ฌ๋ธ ์ฅ์น(์ฃ์ง ๋๋ฐ์ด์ค)์์ ๋จธ์ ๋ฌ๋์ผ๋ก ์ํ ์๋ฆฌ๋ฅผ ์ธ์ํด์ ๋ณดํธ์์๊ฒ ์๋ฆผ์ ๋ณด๋ด๋ ๊ฒ์ด๋ค!
์ค๊ณ์ ๋คํธ์ํฌ๋ NB-IoT์ด์ง๋ง ํ๋กํ ํ์
๊ตฌํ์์๋ Wifi๋ฅผ ์ฌ์ฉํ๋ค.
์ฌ๊ธฐ์ ๋์ ์ญํ ์ Broker ์๋ฒ, Web ์๋ฒ, DB๋ฅผ ๊ตฌ์ถํ๊ณ FCM์ ์ด์ฉํด ์๋ฆผ์ ๋ณด๋ด๋ ๊ฒ์ด๋ค.
๋ด๊ฐ ๊ตฌํ ํด์ผํ๋ ์๋ฒ์ ์ฃผ์ ๊ธฐ๋ฅ์ ์๋์ ๊ฐ๋ค.
MQTT ํต์ ์ ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ์ค๊ณ ํ๋ฉด์ ์ฒ์ ์ ํ๊ฒ ๋๋ค. ๊ตฌ๋ , ๋ฐํ ํต์ ๋ฐฉ์์ผ๋ก IoT ์ฅ์น์ ๋ฑ ๋ง๋ ์์คํ ์ด๋ค.
Broker ์๋ฒ์๋ ์ฌ๋ฌ ์คํ์์ค๊ฐ ์๋๋ฐ ๊ทธ์ค Mosquitto๋ฅผ ์ฌ์ฉํด ๊ตฌ์ถํ๋ค.
์ ์ถ๋ ฅ(I/O)์ด ์์ฃผ ๋ฐ์ํ๋ ์๊ณ ๋น๋ฒํ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์๋น์ค์ด๋ฏ๋ก ๋ ผ ๋ธ๋กํน(Non-blocking I/O) ์ด๋ฒคํธ ๊ธฐ๋ฐ ๋น๋๊ธฐ ๋ฐฉ์์ Node.js(Express)๋ฅผ ์ฑํํ๋ค. ๋ํ Json ๋ฐ์ดํฐ ํ์์ผ๋ก ํต์์ ํ ๊ฒ์ด๋ผ mongoDB๋ฅผ ์ฑํํ๋ค.
์ด๋ฒ ํ๋ก์ ํธ์์๋ ํ๊ต์์ NHN Cloud๋ฅผ ์ง์ ๋ฐ์ ์ฌ์ฉํ๋ค. ์ด ํด๋ผ์ฐ๋ ์๋น์ค๋ ์ฒ์ ์ฌ์ฉํด ๋ดค๋๋ฐ ๊น๋ํ UI์ ํ๊ตญ ํ์ฌ ์๋น์ค์ฌ์ ๊ทธ๋ฐ์ง ์์ฃผ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์๋ค.
๐ฝ ์ต์ข
๋ณด๊ณ ์ ๋ด์ฉ์ค ์ผ๋ถ ๋ฐ์ท
๋ชจ๋ฐ์ผ๊ณผ ํ์ ์ ์ํด ์๋ฒ API ๋ฌธ์๋ฅผ ์์ฑํ์ฌ ๊ณต์ ํ์๋ค.
ํต์ฌ ๊ธฐ๋ฅ(์๋ฆฌ์ธ์) ์์ฐ ์์
์ฑ ์ฌ์ฉ ์์ฐ ์์
๐ผ ์ ์์์ ๋ณด๋ฉด ํ๋กํ ํ์
์ ํ๊ณผ ์ค์ ์๋ํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๊ต๊ณผ๋ชฉ ๋ด๋น ๊ต์๋์ด ํ์๋ค์ด ์ ์งํํ๊ณ ์๋์ง ์ฒดํฌํ๋ ๋ฐํ ์๋ฆฌ์ด๋ค. ํ๋ก์ ํธ ์งํ ๊ณผ์ ์ ๋ฐํํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ 5๋ถ ์์ ๊ธ๋ฐฉ ๋๋ฌ๋ค. ๊ทธ๋ฆฌ๊ณ ์์ฃผ ์งง์ ํผ๋๋ฐฑ์ ๋ฐ์ ์ ์์๋ค. ๋๋ถ์ด ๋ค๋ฅธ ํ์ ์ด๋ป๊ฒ ํ๊ณ ์๋์ง ๋ณด๋ฉด์ ๋๊ธฐ๋ถ์ฌ๋ ๋ฐ๊ณ ๋ฐฐ์ธ์ ๋ ์ป์๋ค.
์ค๊ฐ๊ณ ์ฌ ์ํ๊ธฐ๊ฐ์ ์งํํ ๋ฐํ์ด๋ฉฐ ์ฌ๋ฌ ๊ธฐ์
์ฒด ๋ฉํ ๋๋ค์๊ฒ ํ๊ฐ๋ฅผ ๋ฐ์๋ค. ์ด๋๋ถํฐ๋ ์ต์ข
ํ๊ฐ์ ๋ฐ์๋๋ ํ๊ฐ ์๋ฆฌ์ด๋ฏ๋ก ์ฒ ์ ํ๊ฒ ์ค๋นํ๋ค. ๋ฐํ๋ ์ต๋ํ ๊ฐ๋จ ๋ช
๋ฃํ๊ฒ ํ์ผ๋ฉฐ ์์ ์ง๋ฌธ๋ ์๊ฐํด ๋์์๋ค. ์ ์ค๋นํ ๋๋ถ์ธ์ง ๋ฐํ๋ ์ ํ๊ณ ์ง๋ฌธ์๋ ์ ๋ต๋ณํ๋ค!
ํ๋ก์ ํธ ์ต์ข ๊ฒฐ๊ณผ๋ฌผ์ ๋ฐํํ๊ณ ํ๊ฐ๋ฐ๋ ์๋ฆฌ์ด๋ค. ๋ง์ง๋ง์ธ ๋งํผ ์ ๋ง ์ฌํ์ ๊ธฐ์ธ์๋ค. ์ ํด์ง ์๊ฐ ์์ ๊ทธ๋์ ์์์จ ๋ด์ฉ๋ค์ ๋ฐํํด์ผ ๋๊ธฐ ๋๋ฌธ์ ๋ง์ ๊ณ ๋ฏผ์ ํ๋ค. ์ ๋ง ํต์ฌ ์ค์ ํต์ฌ๋ง ๋ฝ์ ๋ฐํ ์๋ฃ๋ฅผ ๋ง๋ค๊ณ ๋ฐํํ๋ค.
๊ธด์ฅ์ ํ์ง๋ง ๋ฌด๋ํ๊ฒ ๋๋ฌ๋ค. ์๊ฐ ์์ธ๋ก ์ง๋ฌธ์ด ์์ด์ ๊ทธ๊ฒ ๋นํฉ์ค๋ฌ์ ๋ค..(์ํด์ ๊ทธ๋ฐ๊ฑฐ๊ฒ ์ง?)
๋ฐํ์๋ฃ
๋ฐํ ์ ํ๋๋ฒ
๋๊ตฌ ๋ณด๋ค ๋ฐํ ๋ด์ฉ์ ๋ํด ์ ์ดํดํ๊ณ ์์ผ๋ฉด ๋๋ค.
์ ๋ง ๋ฐ์ ํ ํ๊ธฐ์๋ค. ๋ฐ๋นด๋ ์ด์ ๊ฐ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์์ง๋ง ์ด ํ๋ก์ ํธ๊ฐ ํฐ ๋น์ค์ ์ฐจ์งํ๋ค. ๋ถ๋ช ๊ณผ์ ์์์๋ ํ๋ค์์ง๋ง ์ง๋๊ณ ๋ณด๋ฉด ๋ฟ๋ฏํ๊ณ ๋ฐฐ์ด๊ฒ ๋ง๋ค. (๋ ์์ ์ด ๋๊ฒฌํด!)
์๋ฒ์์ ๊ธฐ์ ์ ์ผ๋ก ์ ๊น ์ด๋ ค์ ๋ ๊ฒ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ์๋ค. Nodel.js์์ Kakao API๋ก ์์ฒญ ๋ณด๋ด๋ ๋ถ๋ถ์ด ์์๋ค. ์๋ต์ ๋ฐ์์ค๋ ์๊ฐ์ด ์๋ค ๋ณด๋ ์๋ต์ ๋ฐ์ ๋ค์ ์๋ํด์ผ ํ ์ฝ๋๊ฐ ์๋ต์ด ์ค๊ธฐ ์ ์ ์๋ํ๋ ๋ฌธ์ ์๋ค. ์ด๋๊น์ง ๋น๋๊ธฐ์ ๋ํด ์ ๋๋ก ์ดํดํ์ง ๋ชปํ๊ณ ์์๋ ๊ฒ์ด๋ค..
ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ด๋ ต์ง ์์๋ค. Kakao API ์๋ต์ ๋ฐ์ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ผ๋ ์ฝ๋๋ฅผ ์์ฑํด ์ฃผ๋ฉด ๋๋ค. async & await๋ฅผ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ ์ ์์๋ค.
๋๋ถ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐ ์ฝ๋ฐฑ ํจ์์ Promise์ ๋ํด ์ดํดํ ์ ์์๋ค.
๋๋ฆ์ ์์ฌ์ด ์์๊ธฐ ๋๋ฌธ์ ํ์ฅ์ ํ๊ฒ ๋๋ค. ๋ฌผ๋ก ํ์ฅ์ผ๋ก์ ๋งค์ฐ ๋ถ๋ด์ด ๋์์ง๋ง ๋์๊ฒ ์ ๋ง๋ ์ญํ ์ธ ๊ฒ ๊ฐ๊ธฐ๋ ํ๋ค.
๋ด๊ฐ ์ด๋ฒ ํ๋ก์ ํธ์์ ํ์ฅ์ผ๋ก์ ๊ฐ์ฅ ๋ ธ๋ ฅํ ๊ฒ์ ํ์๋ค ๊ฐ๊ฐ์ธ์ ์ ํ์ ํ๋ ๊ฒ์ด์๋ค. ์ด๋ค ํ์์ด ์ด๋ ๋ถ๋ถ์์ ๊ฐ์ ์ด ์๋์ง ์ ํ์ ํ๊ณ ์์ผ๋ฉด ์ผ์ ๋ถ๋ฐฐํ๊ณ ์ํํ๋ ๋ฐ ์์ด ํจ์จ์ ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ๋ ธ๋ ฅ์ ํ์ง๋ง ์ญ์ ์ฝ์ง ์์๋ค. ๋ ์์ ์ ๋ํด์๋ ์ ๋ชจ๋ฅด๋๋ฐ ๋๊ตฐ๊ฐ๋ฅผ ์ ์ ๋ค๋๊ฒ์ ํ๋ ๊ฒ์ด๋ค. ๋จผ์ ๋ ์์ ์ ๋ํด ์ดํดํ ํ์๊ฐ ์๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
๊ทธ๋๋ ํ์ด๋ผ๋ ๊ฒ์ ๋๋จํ ๊ฒ์ด์๋ค!! ๋ด๊ฐ ๋ถ์กฑํ ๋ถ๋ถ์ ํ์๋ค์ด ์ฑ์์ฃผ์๊ณ ๋๋ถ์ ์ ๋ง๋ฌด๋ฆฌํ ์ ์์๋ค.
ํจ๊ป ๊ณ ์ํด ์ค ํ์๋ค ๊ณ ๋ง์ต๋๋ค! ๐