๊ด€๋ฆฌ ๋ฉ”๋‰ด

Tech Log ๐Ÿ› ๏ธ

MQTT ํ”„๋กœํ† ์ฝœ์ด๋ž€? ๋ณธ๋ฌธ

์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

MQTT ํ”„๋กœํ† ์ฝœ์ด๋ž€?

sehaan 2023. 10. 3. 17:05

 

 

MQTT ๋ž€?

MQTT ํ”„๋กœํ† ์ฝœ์€ ๊ธฐ๊ณ„ ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•ด ์„ค๊ณ„๋œ ํ†ต์‹  ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

REST ํ†ต์‹  ๋ฐฉ์‹๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์„œ๋ฒ„ ๊ฐ„ ์ง์ ‘ ํ†ต์‹ ์ด ์•„๋‹Œ ์ค‘๊ฐ„์— ์ค‘๊ณ„ ์„œ๋ฒ„๋ฅผ ๋‘๊ณ  ๊ฒŒ์‹œ-๊ตฌ๋… ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

 

์ œํ•œ๋œ ๋ฆฌ์†Œ์Šค๋กœ ํ†ต์‹ ์„ ํ•ด์•ผํ•˜๋Š” IOT์˜ ํŠน์„ฑ์œผ๋กœ ์ธํ•ด, ๊ตฌํ˜„์ด ์‰ฝ๊ณ  ํšจ์œจ์ ์ธ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•œ MQTT ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

MQTT์˜ ํŠน์ง•

 

ํ™•์žฅ์„ฑ

MQTT๋Š” ์ ์€ ์ „๋ ฅ๊ณผ ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ๋กœ ์—ฌ๋Ÿฌ ๋””๋ฐ”์ด์Šค์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

๋˜ํ•œ ๋ชจ๋“  ๋””๋ฐ”์ด์Šค๋Š” ์ œํ•œ์—†์ด ์ •๋ณด(ํ† ํ”ฝ)๋ฅผ ๊ตฌ๋…ํ•˜๊ฑฐ๋‚˜ ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งŒ์•ฝ ํ†ต์‹  ๊ฐ€๋Šฅํ•œ ๋””๋ฐ”์ด์Šค๋ฅผ ๋Š˜๋ฆฌ๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹จ์ˆœํžˆ ๋””๋ฐ”์ด์Šค๊ฐ€ ํ•ด๋‹น ํ† ํ”ฝ์„ ๊ตฌ๋…ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์‹ ๋ขฐ์„ฑ

๊ธฐ์กด ๋ฌด์„  ํ†ต์‹ ์€ ์ •๋ณด์˜ ์†์‹ค์ด ์žˆ์—ˆ์ง€๋งŒ MQTT๋Š” ๋ธŒ๋กœ์ปค๊ฐ€ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๊ด€ , ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๋Š” ๋””๋ฐ”์ด์Šค๊ฐ€ ์ค€๋น„๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ๋ฉ”์‹œ์ง€ ์ „์†ก์„ ๋Œ€๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

MQTT์˜ ๊ตฌ์„ฑ ์š”์†Œ

 

ํด๋ผ์ด์–ธํŠธ

MQTT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ํ•˜๋Š” ๋””๋ฐ”์ด์Šค๋ฅผ ํด๋ผ์ด์–ธํŠธ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๋Š” ๊ตฌ๋…์„ ํ•˜์—ฌ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๊ณ  ๊ฒŒ์‹œ๋ฅผ ํ•˜์—ฌ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋ธŒ๋กœ์ปค

๋ธŒ๋กœ์ปค๋Š” ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ๋ฉ”์‹œ์ง€๋ฅผ ์ค‘๊ฐœํ•˜๋Š” ๋ผ์šฐํŒ…์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ณด๋‚ธ ๋ฉ”์„ธ์ง€๋Š” ๋ธŒ๋กœ์ปค๋ฅผ ๊ฑฐ์ณ๊ฐ€๋ฉฐ ๋ธŒ๋กœ์ปค๋Š” ์ด ๋ฉ”์„ธ์ง€๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ํ•ด๋‹น ํ† ํ”ฝ์„ ๊ตฌ๋…ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ฉ”์„ธ์ง€๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

 

 

MQTT์˜ ๋™์ž‘ ๋ฐฉ์‹

 

์ฃผ์ œ(Topic)

์ฃผ์ œ๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ธŒ๋กœ์ปค๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ๋ฐ›์„ ํด๋ผ์ด์–ธํŠธ๋ฅผ ํ•„ํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ์ฃผ์ œ๋ฅผ ๊ตฌ๋…ํ•œ ํด๋ผ์ด์–ธํŠธ๋งŒ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  , ์ฃผ์ œ๋Š” ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒŒ์‹œ

ํด๋ผ์ด์–ธํŠธ๋Š” ์ฃผ์ œ ๋ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์–‘ํ•œ ํ˜•์‹์œผ๋กœ ๋ธŒ๋กœ์ปค์— ์ „์†กํ•ฉ๋‹ˆ๋‹ค.(XML,JSON etc...)

 

๊ตฌ๋…

ํด๋ผ์ด์–ธํŠธ๋Š” ๊ตฌ๋…ํ•œ ์ฃผ์ œ์˜ ๋ฉ”์‹œ์ง€๋งŒ ๋ธŒ๋กœ์ปค๋กœ๋ถ€ํ„ฐ ์ˆ˜์‹  ๋ฐ›์Šต๋‹ˆ๋‹ค.

 

QOS

๋ธŒ๋กœ์ปค๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›๊ณ  ์ง€์ •๋œ QOS ๋ ˆ๋ฒจ์— ๋”ฐ๋ผ์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

 

MQTT QOS 0

๋ฉ”์„ธ์ง€๋ฅผ ํ•œ๋ฒˆ๋งŒ ๋ณด๋‚ด๊ณ  ํ™•์ธ ๋ฉ”์„ธ์ง€(PUBACK) ์„ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ์˜ ์œ ์‹ค์ด ํฌ๊ฒŒ ๋ฌธ์ œ ๋˜์ง€ ์•Š์„ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

์œ ์‹ค ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์ง€๋งŒ ์ ์€ ๋น„์šฉ์œผ๋กœ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

MQTT QOS 1

๋ฉ”์„ธ์ง€๋ฅผ ์ ์–ด๋„ ํ•œ๋ฒˆ ์ด์ƒ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

PUBACK์„ ๋ฐ›์œผ๋ฉฐ ๋งŒ์•ฝ ํ™•์ธ ๋ฉ”์„ธ์ง€๊ฐ€ ์˜ค์ง€ ์•Š๋Š” ๋‹ค๋ฉด ๋ฉ”์„ธ์ง€๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ๋‹ค์‹œ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋ชจ๋“  ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ , ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์˜คํ”„๋ผ์ธ์ผ ๋•Œ ๋ฉ”์„ธ์ง€๋ฅผ ์ €์žฅ(ํ)ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

MQTT QOS 2

๋”ฑ ํ•œ๋ฒˆ์˜ ์ „์†ก์œผ๋กœ ๋ฉ”์„ธ์ง€ ์ „์†ก์„ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ธ๋“œ ์‰์ดํฌ ๊ณผ์ •์„ ํ†ตํ•ด์„œ ๋ฉ”์„ธ์ง€ ์ „์†ก์„ ํ™•์ธํ•˜๋ฉฐ ๊ฐ€์žฅ ๋Š๋ฆฌ์ง€๋งŒ ๊ฐ€์žฅ ํ™•์‹คํ•ฉ๋‹ˆ๋‹ค.

 

*QOS ๋ ˆ๋ฒจ์€ ๊ฒŒ์‹œ์ž์™€ ๊ตฌ๋…์ž๊ฐ€ ์ •ํ•œ ๋ ˆ๋ฒจ ์ค‘์—์„œ ๊ฐ€์žฅ ๋‚ฎ์€ ๊ฐ’์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.