Google Cloud์˜ IoT ํ”Œ๋žซํผ ์ œํ’ˆ ์•„ํ‚คํ…์ฒ˜

Last reviewed 2024-08-09 UTC

IoT ํ”Œ๋žซํผ ์ œํ’ˆ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ธฐ๋ณธ์ ์ธ MQTT ๋ฐ HTTPS ๋ฐ์ดํ„ฐ ์—ฐ๊ฒฐ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ธฐ๊ธฐ๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ธ์ฆ ๋ฐ ๊ด€๋ฆฌ, ์›๊ฒฉ ๋ถ„์„ ์Šคํ† ๋ฆฌ์ง€ ๋ฐ ์‹œ๊ฐํ™”, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ์•Œ๋ฆผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋…๋ฆฝํ˜• MQTT ๋ธŒ๋กœ์ปค๊ฐ€ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์ถฉ์กฑํ•˜๊ธฐ์— ๋ถ€์กฑํ•˜๊ณ  ๋” ์™„์ „ํ•œ IoT ํ”Œ๋žซํผ ์ œํ’ˆ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ IoT ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. IoT ํ”Œ๋žซํผ์€ ์ด๊ธฐ์ข… ๊ธฐ๊ธฐ ๋ชจ์Œ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ํ†ตํ•ฉ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์—ฌ๋Ÿฌ ์—ฐ๊ฒฐ๋œ ๊ธฐ๊ธฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ค‘์š”ํ•˜๋ฉฐ, IoT ํ”Œ๋žซํผ๊ณผ ๋…๋ฆฝํ˜• MQTT ๋ธŒ๋กœ์ปค์˜ ์ฃผ์š” ์ฐจ์ด์ ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ์—์„œ๋Š” Google Cloud์— IoT ํ”Œ๋žซํผ ์ œํ’ˆ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์ „์— ๊ณ ๋ คํ•ด์•ผ ํ•  ๊ธฐ๋ณธ์ ์ธ ์•„ํ‚คํ…์ฒ˜ ๊ณ ๋ ค์‚ฌํ•ญ๊ณผ ๊ถŒ์žฅ์‚ฌํ•ญ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ๋Š” Google Cloud์˜ IoT ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฌธ์„œ ์‹œ๋ฆฌ์ฆˆ์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. ์ด ์‹œ๋ฆฌ์ฆˆ์˜ ๋‹ค๋ฅธ ๋ฌธ์„œ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹ค์ด์–ด๊ทธ๋žจ์€ Google Cloud์—์„œ ์‹คํ–‰๋˜๋Š” ์ผ๋ฐ˜ IoT ํ”Œ๋žซํผ ์ œํ’ˆ์ด ํฌํ•จ๋œ ์•„ํ‚คํ…์ฒ˜์˜ ์˜ˆ์‹œ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ IoT ํ”Œ๋žซํผ ์•„ํ‚คํ…์ฒ˜(๋‹ค์Œ ํ…์ŠคํŠธ์—์„œ ์„ค๋ช…ํ•˜๋Š” ์ด๋ฒคํŠธ ํ๋ฆ„)

์œ„์˜ ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ ๊ฐ™์ด IoT ํ”Œ๋žซํผ์€ ๊ธฐ๊ธฐ ์—ฐ๊ฒฐ์„ ์œ„ํ•ด MQTT ๋ธŒ๋กœ์ปค ๋˜๋Š” ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค. IoT ํ”Œ๋žซํผ์€ ์—์ง€ ๊ธฐ๊ธฐ์˜ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ•˜๋„๋ก ์™ธ๋ถ€ ํ”„๋ก์‹œ ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ IoT ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Pub/Sub ๋˜๋Š” Dataflow MQTT ์ปค๋„ฅํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ IoT ํ”Œ๋žซํผ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

IoT ํ”Œ๋žซํผ์€ ๊ธฐ๊ธฐ ๊ด€๋ฆฌ ์„œ๋น„์Šค ๋ชจ์Œ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์ด์–ด๊ทธ๋žจ์— ํ‘œ์‹œ๋˜์—ˆ๋“ฏ์ด ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ๊ธฐ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ์ €์žฅ์†Œ
  • ๊ทœ์น™ ์—”์ง„
  • ๊ธฐ๊ธฐ ์ธ์ฆ ๋ฐ ์Šน์ธ
  • ๊ธฐ๊ธฐ ๊ตฌ์„ฑ ๊ด€๋ฆฌ
  • ๊ธฐ๊ธฐ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ
  • ๊ธฐ๊ธฐ ์—…๋ฐ์ดํŠธ ๊ด€๋ฆฌ

IoT ํ”Œ๋žซํผ ์ œํ’ˆ์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋””์ง€ํ„ธ ํŠธ์œˆ ๊ธฐ๋Šฅ, ๋กœ์šฐ ์ฝ”๋“œ ๊ฐœ๋ฐœ ์ธํ„ฐํŽ˜์ด์Šค, ์•Œ๋ฆผ ๊ธฐ๋Šฅ, ๊ธฐํƒ€ ๋ถ„์„ ๊ธฐ๋Šฅ๊ณผ ๊ฐ™์€ ์„œ๋น„์Šค๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์•„ํ‚คํ…์ฒ˜ ๊ณ ๋ ค์‚ฌํ•ญ ๋ฐ ์„ ํƒ

๋‹ค์Œ ์„น์…˜์—์„œ๋Š” IoT ํ”Œ๋žซํผ ์ œํ’ˆ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์œ„ํ•œ ์•„ํ‚คํ…์ฒ˜ ์„ ํƒ๊ณผ ์ด๋Ÿฌํ•œ ์„ ํƒ์ด ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์ง‘ ์—”๋“œํฌ์ธํŠธ

๋Œ€๋ถ€๋ถ„์˜ ์ƒ์šฉ IoT ํ”Œ๋žซํผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” MQTT ์—”๋“œํฌ์ธํŠธ์™€ ์ผ๋ฐ˜์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๊ธฐ๊ธฐ์—์„œ์˜ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์šฉ HTTPS ์—”๋“œํฌ์ธํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

MQTT

IoT ํ”Œ๋žซํผ์€ ๋‹ค์Œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ MQTT ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

  • MQTT์™€ ๋‹ค๋ฅธ ๋ฉ”์‹œ์ง€ ์„œ๋น„์Šค ๊ฐ„ ์ปค๋„ฅํ„ฐ
  • ์ „์ฒด MQTT ์‚ฌ์–‘์„ ๊ตฌํ˜„ํ•˜๋Š” MQTT ๋ธŒ๋กœ์ปค

์ƒ์šฉ IoT ํ”Œ๋žซํผ์„ ํ‰๊ฐ€ํ•  ๋•Œ๋Š” ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์„ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณต๊ธ‰์—…์ฒด๊ฐ€ ์ œํ’ˆ์— ์„ ํƒํ•œ ์ด์ „ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ์šฐ์— ๋”ฐ๋ผ MQTT ์—”๋“œํฌ์ธํŠธ๋Š” Kafka ๋˜๋Š” Pub/Sub์™€ ๊ฐ™์€ ๋ฐฑ์—”๋“œ ๋ฉ”์‹œ์ง€ ์„œ๋น„์Šค์—๋งŒ MQTT ํด๋ผ์ด์–ธํŠธ๋ฅผ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ์—”๋“œํฌ์ธํŠธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ „์ฒด MQTT ํ”„๋กœํ† ์ฝœ ์‚ฌ์–‘์„ ๊ตฌํ˜„ํ•˜์ง€ ์•Š์œผ๋ฉฐ, QoS ์ˆ˜์ค€ 1 ๋ฐ 2 ๋˜๋Š” ๊ณต์œ  ๊ตฌ๋…๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜์ง€ ์•Š์„ ๋•Œ๊ฐ€ ์ข…์ข… ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์˜ ์žฅ์ ์€ ๋ณ„๋„์˜ MQTT ๋ธŒ๋กœ์ปค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์—†์œผ๋ฏ€๋กœ IoT ํ”Œ๋žซํผ์˜ ๋ณต์žก์„ฑ์ด ์ค„์–ด๋“ ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šด์˜ ๋น„์šฉ์ด ๋” ๋‚ฎ๊ณ  ํ”Œ๋žซํผ์ด ๋ณ„๋„์˜ MQTT ๋ธŒ๋กœ์ปค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋ณด๋‹ค ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ณ ๊ธ‰ MQTT ํ”„๋กœํ† ์ฝœ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง€์›์ด ์ค„๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ „์ฒด MQTT ์‚ฌ์–‘์„ ๊ตฌํ˜„ํ•˜๋Š” ๋…๋ฆฝํ˜• MQTT ๋ธŒ๋กœ์ปค๋ณด๋‹ค MQTT ๋ฉ”์‹œ์ง€ ์ „์†ก์˜ ์œ ์—ฐ์„ฑ๊ณผ ๊ธฐ๋Šฅ์ด ์ ์Šต๋‹ˆ๋‹ค.

๋‹ค๋ฅธ IoT ํ”Œ๋žซํผ์€ ์ด ๋ฌธ์„œ์˜ ์•„ํ‚คํ…์ฒ˜ ์˜ˆ์‹œ์— ํ‘œ์‹œ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ํ”Œ๋žซํผ์˜ ์ผ๋ถ€๋กœ ์™„์ „ํ•œ MQTT ๋ธŒ๋กœ์ปค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ธŒ๋กœ์ปค๋Š” ๊ธฐ์กด ์˜คํ”ˆ์†Œ์Šค ๋ธŒ๋กœ์ปค ์ค‘ ํ•˜๋‚˜์ด๊ฑฐ๋‚˜ ๋…์  ๋ธŒ๋กœ์ปค๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒƒ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ฒด MQTT ๋ธŒ๋กœ์ปค๋Š” ์•ž์—์„œ ์„ค๋ช…ํ•œ ์ „์ฒด ์–‘๋ฐฉํ–ฅ MQTT ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€๋งŒ ์ „์ฒด ๋ธŒ๋กœ์ปค๋Š” IoT ํ”Œ๋žซํผ ๊ด€๋ฆฌ์— ๋ณต์žก์„ฑ๊ณผ ์šด์˜ ๋น„์šฉ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

HTTPS ๋ฐ ๊ธฐํƒ€ ๋ณด์กฐ ํ”„๋กœํ† ์ฝœ

MQTT ์™ธ์—๋„ ๋งŽ์€ IoT ํ”Œ๋žซํผ์ด ์ด ๋ฌธ์„œ์—์„œ ์„ค๋ช…ํ•˜๋Š” ๊ธฐ๋ณธ ์•„ํ‚คํ…์ฒ˜์— ํ‘œ์‹œ๋œ ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

HTTPS๋Š” ์—ฐ๊ฒฐ๋œ ๊ธฐ๊ธฐ ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ MQTT๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. MQTT๋ณด๋‹ค ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋†’์ง€๋งŒ ํœด๋Œ€์ „ํ™”์™€ ๊ฐ™์€ ํœด๋Œ€๊ธฐ๊ธฐ, ์›น๋ธŒ๋ผ์šฐ์ €, ๊ธฐํƒ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋” ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ํŠน์ • ์—ฐ๊ฒฐ๋œ ๊ธฐ๊ธฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋ฉฐ Eclipse Hono์™€ ๊ฐ™์€ ์˜คํ”ˆ์†Œ์Šค ํ”Œ๋žซํผ๊ณผ ์—ฌ๋Ÿฌ ์ƒ์—…์šฉ ์ œํ’ˆ์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

์ œ์•ฝ์ด ์žˆ๋Š” ๋งŽ์€ ๊ธฐ๊ธฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด RFC 7252์— ์ •์˜๋œ CoAP(Constrained Application Protocol)์„ MQTT ๋Œ€์•ˆ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. CoAP๋Š” ๋‚ด์žฅํ˜• ๊ธฐ๊ธฐ ๋ฐ ์„ผ์„œ๋ฅผ ์œ„ํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋‚ฎ๊ณ  ์‚ฌ์šฉ ๊ณต๊ฐ„์ด ์ ์€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋งŽ์€ ์ƒ์šฉ IoT ํ”Œ๋žซํผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋„ CoAP ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ถ€ํ•˜ ๋ถ„์‚ฐ

์•„ํ‚คํ…์ฒ˜์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ถ€ํ•˜ ๋ถ„์‚ฐ๊ธฐ ์„ ํƒ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Google Cloud์˜ ๋…๋ฆฝํ˜• MQTT ๋ธŒ๋กœ์ปค ์•„ํ‚คํ…์ฒ˜์˜ ๋ถ€ํ•˜ ๋ถ„์‚ฐ ์„น์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”. ์ด ๊ณ ๋ ค์‚ฌํ•ญ์€ ์ด ์‚ฌ๋ก€์—๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๊ธฐ๊ธฐ ์ธ์ฆ ๋ฐ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๊ด€๋ฆฌ

๊ธฐ๊ธฐ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๋ฐ ์ธ์ฆ ๊ด€๋ฆฌ๋Š” IoT ํ”Œ๋žซํผ ์šด์˜์˜ ํ•ต์‹ฌ ์š”์†Œ์ž…๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ๋œ ๊ธฐ๊ธฐ์—์„œ ์ง€์›๋˜๋Š” ์ธ์ฆ ๋ฐฉ๋ฒ•์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ๊ธฐ๊ธฐ ํผ ํŒฉํ„ฐ์— ๋”ฐ๋ผ ํฌ๊ฒŒ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋Œ€์ƒ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ์ ํ•ฉํ•œ ์ธ์ฆ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•˜๊ณ  ์„ ํƒํ•œ ์ธ์ฆ ์Šคํ‚ค๋งˆ๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

๋…๋ฆฝํ˜• MQTT ๋ธŒ๋กœ์ปค์™€ ๋‹ฌ๋ฆฌ IoT ํ”Œ๋žซํผ์€ ๊ธฐ๊ธฐ ID ๋ฐ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ†ตํ•ฉ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ IoT ํ”Œ๋žซํผ์€ ์ธ์ฆ์— X.509 ํด๋ผ์ด์–ธํŠธ ์ธ์ฆ์„œ ์ธ์ฆ, (JWT 2.0๊ณผ ๊ฒฐํ•ฉํ•  ๋•Œ๊ฐ€ ๋งŽ์€) JWT ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ, ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ธ์ฆ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ํ”Œ๋žซํผ์€ ์™ธ๋ถ€ LDAP ์ธ์ฆ ์ œ๊ณต์—…์ฒด์™€์˜ ํ†ตํ•ฉ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์Šคํ‚ค๋งˆ๋Š” ์—ฐ๊ฒฐ๋œ ๊ธฐ๊ธฐ์—์„œ ๋” ์ ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ํ•„์š”๋กœ ํ•˜๋ฏ€๋กœ ์ผ๋ถ€ ์ œํ•œ๋œ ๊ธฐ๊ธฐ์˜ ๊ฒฝ์šฐ JWT ๋˜๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ธ์ฆ์ด ๋” ์ ํ•ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. JWT ๋˜๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ธ์ฆ์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ด๋Ÿฌํ•œ ์ธ์ฆ ๋ฐฉ๋ฒ•์—์„œ๋Š” ์•”ํ˜ธํ™”๋œ ์—ฐ๊ฒฐ์„ ์š”๊ตฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— mTLS ์ธ์ฆ๊ณผ ๋ณ„๋„๋กœ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ์•”ํ˜ธํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— X.509 ์ธ์ฆ์„œ ์ธ์ฆ์€ ์—ฐ๊ฒฐ๋œ ๊ธฐ๊ธฐ์—์„œ ๋” ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ mTLS๋กœ ์•”ํ˜ธํ™”๋œ ์—ฐ๊ฒฐ์—์„œ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ๋†’์€ ์ˆ˜์ค€์˜ ๋ณด์•ˆ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ œ์กฐ ์‹œ์ ์— ์—์ง€ ๊ธฐ๊ธฐ์— ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ํ”„๋กœ๋น„์ €๋‹ํ•˜๋Š” ๊ฒƒ๋„ ์—ฐ๊ฒฐ๋œ ๊ธฐ๊ธฐ ์ธ์ฆ ์Šคํ‚ค๋งˆ์—์„œ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ด์ง€๋งŒ ์ด ๋ฌธ์„œ์—์„œ๋Š” ๋‹ค๋ฃจ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ธ์ฆ ๋ฐ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Google Cloud์—์„œ IoT ๋ฐฑ์—”๋“œ ์‹คํ–‰ ๊ถŒ์žฅ์‚ฌํ•ญ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์—ฐ๊ฒฐ๋œ ๊ธฐ๊ธฐ ๊ด€๋ฆฌํ•˜๊ธฐ

์ผ๋ฐ˜์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๊ธฐ๊ธฐ๋Š” MQTT์™€ ๊ฐ™์€ ์ˆ˜์ง‘ ์—”๋“œํฌ์ธํŠธ ์ค‘ ํ•˜๋‚˜๋ฅผ ํ†ตํ•ด ์›๊ฒฉ ๋ถ„์„ ์ด๋ฒคํŠธ ๋ฐ ์ƒํƒœ ์ •๋ณด๋ฅผ ํ”Œ๋žซํผ์— ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ ํ”„๋กœํ† ์ฝœ IoT ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ง€์›๋˜๋Š” ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๊ธฐ์—์„œ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์กฐ์ง์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” IoT ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • ์†Œํ”„ํŠธ์›จ์–ด ๋ฐ ์‹œ์Šคํ…œ ์—…๋ฐ์ดํŠธ: ์—ฐ๊ฒฐ๋œ ๊ธฐ๊ธฐ์— ๋Œ€ํ•œ ํŽŒ์›จ์–ด, ์†Œํ”„ํŠธ์›จ์–ด, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ๋กค๋ฐฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์—…๋ฐ์ดํŠธ์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ ์ž์ฒด์˜ ์Šคํ† ๋ฆฌ์ง€์™€ ๊ด€๋ฆฌ๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  • ๊ตฌ์„ฑ ์—…๋ฐ์ดํŠธ: ์—ฐ๊ฒฐ๋œ ๊ธฐ๊ธฐ์— ๋ฐฐํฌ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์„ฑ์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐฐํฌ, ์ €์žฅ, ๋กค๋ฐฑํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด ๋งŒ๋“ค๊ธฐ ๋ฐ ๊ด€๋ฆฌ: ์ƒˆ๋กœ์šด ๊ธฐ๊ธฐ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ๋งŒ๋“ค๊ณ  ์—ฐ๊ฒฐ๋œ ๊ธฐ๊ธฐ์— ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ์ „์†กํ•˜๊ณ  ๊ธฐ๊ธฐ ์•ก์„ธ์Šค ์‹œ๋„ ๋ฐ ํ™œ๋™์„ ๊ฐ์‚ฌํ•˜๋ฉฐ ์ ์‹œ์— ๋ณด์•ˆ์ด ์นจํ•ด๋˜๊ฑฐ๋‚˜ ๋งŒ๋ฃŒ๋œ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ์ทจ์†Œํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทœ์น™ ์—”์ง„ ๋ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ: ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๊ทœ์น™ ๋ฐ ๊ธฐํƒ€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋‹จ๊ณ„๋ฅผ ์ •์˜ํ•˜๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์—๋Š” ๊ทœ์น™ ๋ฐ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ํŒŒ์ดํ”„๋ผ์ธ์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ๋กœ์šฐ ์ฝ”๋“œ ์ธํ„ฐํŽ˜์ด์Šค ์œ ํ˜•์ด ํฌํ•จ๋œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ ์›Œํฌ๋กœ๋“œ

๋Œ€๋ถ€๋ถ„์˜ IoT ํ”Œ๋žซํผ์€ ๋ฐฑ์—”๋“œ ์›Œํฌ๋กœ๋“œ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์ž์ฒด ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ ์Šคํ† ๋ฆฌ์ง€ ๋ฐ ์ „์†ก ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ AMQP, RabbitMQ, Kafka๊ฐ€ ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋‘ Pub/Sub SDK๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Pub/Sub์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. PostgreSQL๊ณผ ๊ฐ™์€ ํ†ตํ•ฉ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”Œ๋žซํผ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ Cloud SQL, Firebase ๋˜๋Š” BigQuery์™€ ๊ฐ™์€ Cloud Storage ์ œํ’ˆ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋„๋ก IoT ํ”Œ๋žซํผ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

IoT ํ”Œ๋žซํผ์— ์™„์ „ํ•œ MQTT ๋ธŒ๋กœ์ปค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ”Œ๋žซํผ์˜ MQTT ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๊ธฐ์™€ ํ†ต์‹ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ MQTT๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ตฌ๋…์ž๋กœ ๋ธŒ๋กœ์ปค์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MQTT๊ฐ€ ์ง€์›๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด Apache Beam์—์„œ ์ œ๊ณตํ•˜๋Š” MQTT ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด ๋“œ๋ผ์ด๋ฒ„๋Š” Dataflow ๋ฐ ๋‹ค๋ฅธ Beam ๋ฐฐํฌ์™€์˜ ์–‘๋ฐฉํ–ฅ ํ†ตํ•ฉ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์‚ฌ๋ก€

๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ๋…๋ฆฝํ˜• MQTT ๋ธŒ๋กœ์ปค๋‚˜ Pub/Sub์— ๋Œ€ํ•œ ์ง์ ‘ ์—ฐ๊ฒฐ๋ณด๋‹ค IoT ํ”Œ๋žซํผ์ด ์•„ํ‚คํ…์ฒ˜ ์„ ํƒ ์˜ต์…˜์œผ๋กœ ๋” ์ ํ•ฉํ•œ ๊ฒฝ์šฐ์˜ ์˜ˆ์‹œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์Šค๋งˆํŠธ ์–ดํ”Œ๋ผ์ด์–ธ์Šค ๊ด€๋ฆฌ

์—ฌ๋Ÿฌ ์Šค๋งˆํŠธ ์–ดํ”Œ๋ผ์ด์–ธ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ IoT ํ”Œ๋žซํผ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์˜ˆ์‹œ๋กœ๋Š” ์‹๊ธฐ ์„ธ์ฒ™๊ธฐ ๋ฐ ์ปคํ”ผ ๋ฉ”์ด์ปค์™€ ๊ฐ™์€ ์ฃผ๋ฐฉ ๊ฐ€์ „ ๊ด€๋ฆฌ ํ”Œ๋žซํผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๊ธฐ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ Wi-Fi๋ฅผ ํ†ตํ•ด ์ง์ ‘ ๋˜๋Š” ์ €์ „๋ ฅ ๋ธ”๋ฃจํˆฌ์Šค(BLE)๋‚˜ ๊ธฐํƒ€ ๋กœ์ปฌ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜๋Š” ๋กœ์ปฌ ๊ฒŒ์ดํŠธ์›จ์ด๋ฅผ ํ†ตํ•ด ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ธฐ๊ธฐ์˜ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ์†Œํ”„ํŠธ์›จ์–ด ์—…๋ฐ์ดํŠธ ๋ฐ ๋ณด์•ˆ ํŒจ์น˜๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ๊ธฐ๊ธฐ ํ™œ๋™์„ ์บก์ฒ˜ํ•˜์—ฌ ์ œ์กฐ์—…์ฒด ๋ฐ ๊ณ ๊ฐ์—๊ฒŒ ์ค‘์š” ์ธํ…”๋ฆฌ์ „์Šค๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” IoT ํ”Œ๋žซํผ์˜ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์€ ๊ธฐ๋ณธ MQTT ๋ธŒ๋กœ์ปค์˜ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚ฉ๋‹ˆ๋‹ค. ์„ฑ๊ณต์ ์ธ ์Šค๋งˆํŠธ ์–ดํ”Œ๋ผ์ด์–ธ์Šค ํ”Œ๋žซํผ์„ ๋นŒ๋“œํ•˜๋ ค๋ฉด ์ตœ์†Œํ•œ ๊ธฐ๊ธฐ ์ •๋ณด ์ €์žฅ์†Œ, ๊ธฐ๊ธฐ ์ƒํƒœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์›๊ฒฉ ๋ถ„์„ ๋ฐ์ดํ„ฐ ์Šคํ† ์–ด, ๋ถ„์„ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋ชจ๋‘ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌผ๋ฅ˜ ๋ฐ ์• ์…‹ ์ถ”์ 

๋ฌผ๋ฅ˜ ๋ฐ ์• ์…‹ ์ถ”์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฒฝ์šฐ IoT ํ”Œ๋žซํผ ์ œํ’ˆ์ด ๊ธฐ๋ณธ MQTT ๋ธŒ๋กœ์ปค๋ณด๋‹ค ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์ด ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๊ทœ๋ชจ ์ž์‚ฐ์˜ ํ˜„์žฌ ๋ฐ ๊ณผ๊ฑฐ ์ƒํƒœ์™€ ์œ„์น˜๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์€ ๊ฐ•๋ ฅํ•œ ๊ธฐ๊ธฐ ์ƒํƒœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ID ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์— ๋”ฐ๋ผ ์ขŒ์šฐ๋ฉ๋‹ˆ๋‹ค. ์ƒˆ ์ž์‚ฐ์ด ๋ฐฐ์น˜๋˜๋ฉด ์ตœ๋Œ€ํ•œ ๋ถˆํŽธ ์—†์ด ํ”Œ๋žซํผ์— ์—ฐ๊ฒฐํ•˜๊ณ  ์ž์‚ฐ ์ˆ˜๋ช… ์ฃผ๊ธฐ ๋™์•ˆ ๋ชจ๋‹ˆํ„ฐ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํ˜„์ง€ ์˜จ๋„, ์Šต๋„, ๊ธฐ์•• ๋˜๋Š” 3D ํฌ์ง€์…”๋‹ ๋ฐ ๊ฐ€์† ๋ฐ์ดํ„ฐ ๋“ฑ ์ž์‚ฐ์— ๋Œ€ํ•œ ๊ธฐํƒ€ ์„ผ์„œ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜์—ฌ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ณ€ํ™”๋‚˜ ๊ฐ์†Œ๋ฅผ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์˜ฌ๋ฐ”๋ฅธ ์ž์‚ฐ๊ณผ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋ฏ€๋กœ IoT ํ”Œ๋žซํผ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ๊ธฐ๊ธฐ ๊ด€๋ฆฌ๋Š” ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„