MQTT ๊ฒํฅ๊ธฐ๐
MQTT์ ์ดํด
- Message Queuing Telemetry Transport : ์ง์ญํ๋ฉด ๋ฉ์์ง ํ ์๊ฒฉ ์ธก์ ์ ์ก
- ์๊ฒฉ ์ ์ด, ์๊ฒฉ ์ธก์ ์ ์ํ ํต์ ํ๋กํ ์ฝ
- ๋ฐํ, ๊ตฌ๋ ๋ชจ๋ธ ๊ธฐ๋ฐ์ ๋ฉ์์ง ํ๋กํ ์ฝ
- Facebook messenger๊ฐ MQTT๋ฅผ ์ฌ์ฉํ๋ค๊ณ ์๋ ค์ ธ ์๋ค.
- ๊ฒฝ๋์ด๋ฉฐ ๋ฐฐํฐ๋ฆฌ ์๋ช ๋ ์ ์ฝํ ์ ์์ด IoT์์ ๋ง์ด ํ์ฉ
MQTT์ ํน์ง
- ์๊ตฌ์กฐ๊ฑด
- ์ค์๊ฐ ํธ์ ์ ์ก
- ์ ๋ ฅ์ฌ์ฉ ์ต์ํ
- ๋น๋๊ธฐ ๋ฉ์์ง
- ์ ๋ขฐ์ฑ
- ๊ฒฝ๋ํ
- ๊ฒฝ๋ ๋ฉ์์ง ํฌ๋ฉง
- 80~100kb ์ ๋์ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ
- ์ ์ฐ์ฑ, ํ์ฅ์ฑ
- ์ด๋ฒคํธ ๋ฐฉ์ (๋ค์์ ์ฌ์ฉ์, ๋๋ฐ์ด์ค ์ง์)
- ์์ฉ์ฝ๋ ๋ณ๊ฒฝ ์์ด ๋ณ๊ฒฝ ๊ธฐ๋ฅ ํ์ฅ ๊ฐ๋ฅ
- ์์ฐ์ฑ
- ํ์ง, ์ ์ฅ, ์ ๋ฌ, ๋ฐํ/๊ตฌ๋ ๊ธฐ๋ฅ ์ ๊ณต (๋ณ๋์ ์์ฉ ๋ก์ง ํ์ ์์)
- ๊ฐ๋จํ ๊ฐ๋ ์ผ๋ก ๊ฐ๋ฐ์์ ํ์ต ์ฉ์ดํจ
MQTT์ ๊ตฌ์กฐ
- ๋ฐํ์, ํ ํฝ, ๋ธ๋ก์ปค, ๊ตฌ๋ ์๋ก ๊ตฌ์ฑ
- ๋ฐํ์์ ๊ตฌ๋ ์๊ฐ ์ง์ ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ์ง ์๋ ๋น๋๊ธฐ ๋ฐฉ์
- ๊ตฌ๋ ์๋ ๋ธ๋ก์ปค๋ฅผ ํตํด ๊ด์ฌ ์๋ Topic์ ๊ตฌ๋ ์ ์ธํ๋ค.
- ๋ฐํ์๊ฐ Topic์ ๋ฐ์ดํฐ๋ฅผ ์ค์ด ๋ธ๋ก์ปค์๊ฒ ๋ณด๋ด๋ฉด ๋ธ๋ก์ปค๊ฐ ํด๋น Topic์ ๊ตฌ๋ ํ๋ ๊ตฌ๋ ์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ธ๋ค.
MQTT์ ํฌ๋งท
- ๊ณ ์ ํค๋, ๊ฐ๋ณ ํค๋, ํ์ด๋ก๋ (= ํค๋, ํ ํฝ, ํ์ด๋ก๋)๋ก ๋๋จ
- ๊ณ ์ ํค๋ : ๋ฉ์์ง ํ์ (Message Type), ํ๋๊ทธ(Flag), QoS ๋ ๋ฒจ, Remaining Length๋ฅผ ์ ์
- ๊ฐ๋ณ ํค๋ : ๊ณ ์ ํค๋์ ํ์ด๋ก๋ ์ฌ์ด์ ์กด์ฌํ๋ฉฐ ํ๋กํ ์ฝ์ ์ด๋ฆ๊ณผ ๋ฒ์ , topic ์ด๋ฆ์ ํฌํจ. ํ ํฝ ์ด๋ฆ์ MQTT PUBLISH ๋ฉ์์ง์ ํฌํจ๋๋ฉฐ, ํ์ด๋ก๋์ ํฌํจ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐํ ํ ๋ ์ฌ์ฉํ๋ ์ฑ๋์ ์ด๋ฆ
- Payload : ๋ฐ์ดํฐ, ์ค์ ์ ์ก๋๋ ๋ฉ์ธ์ง
Topic์ ๊ตฌ์กฐ
- ํ ํฝ์ ์ฌ๋์(/)๋ฅผ ์ด์ฉํด์ ๊ณ์ธต์ ์ผ๋ก ๊ตฌ์ฑํ ์ ์์ด ์ง๊ด์ ์ด๋ฉฐ, ๋ง์ ์ผ์๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ ์ฉํ๋ค.
- ํ ํฝ์ ์ด๋ฆ์ผ๋ก ํ๋ ๋ฉ์์ง ์ฑ๋์ ๋ง๋ ๋ค.
- bedroom์ ์จ๋๊ณ ์ผ์๋ฅผ ์ง์นญํ๋ค๊ณ ๊ฐ์ ํ๋ฉด
house/bedroom/temperature
- ๋ชจ๋ ๋ฐฉ์ ์จ๋๊ณ๋ฅผ ์ง์นญํ๋ ค๋ฉด
house/+/temperature
(+๋ ํด๋น ๋ ๋ฒจ ์์ผ๋์นด๋) - bedroom์ ๋ชจ๋ ์ผ์๋ฅผ ์ง์นญํ๋ ค๋ฉด
house/bedroom/#
(#๋ ํ์๋ฅผ ๋ชจ๋ ์ง์นญํ๋ ์์ผ๋์นด๋)
QoS ๋ ๋ฒจ
- Quality of Service
- ๋ฐ๋์ ์ ๋ฌ๋์ด์ผ ํ๋ ์ค์ ๋ฉ์์ง์ ๋ํ ์ ๋ฌ์ ๋ณด์ฅ
- QoS๋ ๋ฐํ์์ ๊ตฌ๋ ์ ๋ชจ๋ ์ง์ ํ ์ ์๋ค. ์ด๋ ๋ฐํ์๊ฐ ์ง์ ํ ์ต๋ QoS ๋ ๋ฒจ์ด ์ฐ์ ์๋๋ค.
- ๋ฐํ์๊ฐ QoS ๋ ๋ฒจ์ 2๋ก ์ง์ ํ๋ค๋ฉด ๊ตฌ๋ ์๋ 0, 1, 2 ๋ ๋ฒจ ๋ชจ๋ ๊ตฌ๋ ํ ์ ์๋ค.
- ๋ฐํ์๊ฐ QoS ๋ ๋ฒจ์ 0์ผ๋ก ์ง์ ํ๋ค๋ฉด ๊ตฌ๋ ์์ QoS ๋ ๋ฒจ์ ์๊ด์์ด 0 ๋ ๋ฒจ์ ์๋น์ค๋ฅผ ๋ฐ๊ฒ ๋๋ค.
- QoS 0
- ๋ฐํ์(ํด๋ผ์ด์ธํธ)๋ ๋ฉ์์ง๋ฅผ ๋ณด๋ธ ํ ๊ตฌ๋ ์์ ์์ ์ฌ๋ถ์ ์๊ด์์ด ๋ฉ์์ง๋ฅผ ์ญ์ ํ๋ค.
- ๋ฉ์์ง๊ฐ ์ต๋ 1๋ฒ ์ ๋ฌ๋๋ฉฐ, ์ ๋ฌ ์ฌ๋ถ๋ฅผ ํ์ธํ์ง ์์ผ๋ฏ๋ก ์ ์ค ๊ฐ๋ฅ์ฑ์ด ์๋ค.
- QoS 1
- ๋ฉ์์ง ์ ์ก์ด ์๋ฃ๋๋ฉด ์๋ฒ๋ ๋ฐํ ์๋ฃ ์๋ต๋ฉ์์ง๋ฅผ ๋ฐํ์์๊ฒ ์ ์กํ๊ณ , ์ด ๋ฉ์์ง๋ฅผ ๋ฐ์ ๋ฐํ์๋ ์ ์ก์ด ์๋ฃ๋ ๊ฒ์ผ๋ก ํ๋จ
- ๊ตฌ๋ ์๋ ๋ฉ์์ง๋ฅผ ์ ๋ฐ์๋์ง์ ์ฌ๋ถ๋ฅผ ์๋ฒ์ ์์ํ๊ณ , ๋ฐํ์๋ ์๋ฒ์ PUBACK ๋ฉ์์ง๋ง ์ฒดํฌ
- ๋ฉ์์ง๊ฐ ์ต์ 1๋ฒ ์ ๋ฌ๋๋ฉฐ, ์ ๋ฌ ์ฌ๋ถ๋ฅผ ํ์ธํ์ง๋ง ์ค๋ณต ์ ๋ฌํ ๊ฐ๋ฅ์ฑ์ด ์๋ค.
- QoS 2
- ๋ฉ์์ง ์ ์ก์ด ์๋ฃ๋๋ฉด ์๋ฒ๋ ๋ฐํ๋ ๋ฉ์์ง๊ฐ ์ ์๋์๋ค๋ PUBREC ๋ฉ์์ง๋ฅผ ๋ฐํ์์๊ฒ ์ ์ก
- ๋ฐํ์๋ PUBREC ๋ฉ์์ง๋ฅผ ๋ฐ๊ณ ์๋ฒ์ ๋ฉ์์ง์ ๋ํ ๋ณด์ฅ ๋ฐฐ๋ฌ์ ์ฌ์์ฒญํ๋ PUBREL ์ ์ก
- ์ด๋ฅผ ๋ฐ์ ์๋ฒ๋ ๊ตฌ๋ ์๊ฐ ๋ฉ์์ง ํ์ธ์ ํ ํ ๋ฉ์์ง ์ ์ก์ ์๋ฃํ๋ฉฐ ์ด๋ฅผ ๋ฐํ์์๊ฒ ์๋ฆผ
- ๋ฉ์์ง๊ฐ ๋จ ํ ๋ฒ, ์ ํํ๊ฒ ์ ๋ฌ๋๋ค.
์ฐ๊ฒฐ ์ ์ค
ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ฐ๊ฒฐ์ ์์์ ๋ ์ด๋ฅผ ๋ณด์ ํ๊ธฐ ์ํ MQTT ์์ฒด ๊ธฐ๋ฅ
- Last Will And Testament : ํด๋ผ์ด์ธํธ๊ฐ ์๊ณ ์์ด ์ฐ๊ฒฐ์ ์์์ ๋ ์ด๋ฒคํธ๊ฐ ์๋ฒ์์ ๋ฐ์, ์๋ฒ ์ธก์์ ์ฐ๊ฒฐ ์ ์ค ์ฌ๋ถ๋ฅผ ์ธ์ง
- ์ฅ๊ธฐ ๊ตฌ๋ : ์๋ฒ์ ํด๋ผ์ด์ธํธ์ ๊ตฌ๋ ์ ๋ณด ์ ์ฅ๋จ, ์ธ์ ์ข ๋ฃ ํ ์ฌ์ ์ ์์๋ ์ฌ์์ ์์ด ๋ฐํ/๊ตฌ๋ ์ ์ง
- ํด๋ฆฐ ์ธ์ : ์ฐ๊ฒฐ ํด์ ํ ๋ค์ ์ฐ๊ฒฐ๋์์ ๋ ์ด์ ์ธ์ ์ ์ง/์ญ์ ์ ํ
๋ฉ์์ง ์ํ์ค
- ๋จ๊ธฐ ๊ตฌ๋
- ์ธ์ ์๋ช ์ฃผ๊ธฐ ๋ด์์ ๊ตฌ๋ ์์ฒญ ๋ฉ์์ง์ ์ข ๋ฃ ๋ฉ์์ง๋ก ๊ตฌ๋ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ด๋ฃธ
- ํ ํฝ ๋ฉ์์ง๋ ๊ตฌ๋ ์๋ช ์ฃผ๊ธฐ ์์์ ์ ์ก๋๋ค.
- ์ฅ๊ธฐ ๊ตฌ๋
- ๊ตฌ๋ ์๋ช ์ฃผ๊ธฐ ๋ด์์ ์ธ์ ์ด ์์ฑ๋๊ณ ์ข ๋ฃ๋ ์ ์์
- ์๋ฒ์ ํด๋ผ์ด์ธํธ์ ๊ตฌ๋ ์ ๋ณด๊ฐ ์ ์ฅ๋๋ฏ๋ก ์ธ์ ์ข ๋ฅ ํ ์ฌ์ฐ๊ฒฐ ์์๋ ์ฌ์์ ์์ด ๋ฐํ/๊ตฌ๋ ์ ์ง ๊ฐ๋ฅ
- Kepp Alive
- ์๋ฒ๋ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์ค์ ๋ ์๊ฐ(Keep Alive Timer) ์ด์ ๋ฉ์์ง๊ฐ ์ค์ง ์์ผ๋ฉด ์ฐ๊ฒฐ์ ํด์ง
- ์ฐ๊ฒฐ์ด ํด์ง๋๋ฉด ํด๋ผ์ด์ธํธ๋ ์ฐ๊ฒฐ์ ์ ์งํ๊ธฐ ์ํด ๋ฐํ ๋ฉ์์ง๋ฅผ ๋์ ํ์ฌ ํ ๋ฉ์์ง ์ ์กํ๊ณ , ์ด ๋ฉ์์ง๊ฐ ๋์ฐฉํ๋ฉด ํ์ด๋จธ๊ฐ ๋ค์ ์์๋๋ฉด์ ์ฐ๊ฒฐ์ด ์ ์ง๋จ
- Will ๋ฉ์ธ์ง
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์ฐ๊ฒฐํ ๋ Will ํ๋๊ทธ๋ฅผ ์ธํ ํ๋ฉด, ์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ ์ข ๋ฃ๋์์ ๋ ๋ชจ๋ ๊ด๋ จ ๊ตฌ๋ ์์๊ฒ Will ๋ฉ์์ง๋ฅผ ์ ๋ฌํ์ฌ ํด๋น ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ ์ํ๋ฅผ ์๋ฆผ
- Will ํ๋๊ทธ, Will QoS, Will Retain ๋ฑ์ ์ธํ
MQTT
[Youtube] #4. MQTT - IoT แแ
ณแ
แ
ฆแแ
ตแทแแ
ฏแแ
ณ แแ
ฎแแ
ฎแจ
This post is licensed under CC BY 4.0 by the author.