giip
SES Proposal
1 min read

MQE ์ƒ์„ธ ์‚ฌ์–‘ ๊ฐ€์ด๋“œ (๊ธฐ์ˆ ์šฉ)

GIIP ๋ฉ”์‹œ์ง€ ํ ์—”์ง„(MQE)์˜ ํ”„๋กœํ† ์ฝœ, ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋ฐ ์‹ ๋ขฐ์„ฑ ๋ณด์žฅ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ๊ธฐ์ˆ  ์ƒ์„ธ ์‚ฌ์–‘์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ”” ๋ฉ”์‹œ์ง€ ํ ์„ค์ • ํŽ˜์ด์ง€๋กœ ์ด๋™ โ†’

๐Ÿ“‹ ๊ฐœ์š”

**MQE(Message Queue Engine)**๋Š” GIIP ์ƒํƒœ๊ณ„์˜ ์‹ ๊ฒฝ๋ง ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ๋ถ„์‚ฐ๋œ ์—์ด์ „ํŠธ๋“ค๊ณผ ์ค‘์•™ ์„œ๋ฒ„ ๊ฐ„์˜ ๊ณ ์„ฑ๋Šฅ, ๊ณ ์‹ ๋ขฐ์„ฑ ํ†ต์‹ ์„ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ, ๋„คํŠธ์›Œํฌ ๋ถˆ์•ˆ์ • ์ƒํ™ฉ์—์„œ๋„ ๋ฐ์ดํ„ฐ ์œ ์‹ค์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ธฐ์ˆ ์  ์žฅ์น˜๋“ค์„ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ› ๏ธ ๊ธฐ์ˆ  ๊ทœ๊ฒฉ

1. ํ†ต์‹  ํ”„๋กœํ† ์ฝœ ๋ฐ ํฌํŠธ

  • Primary Protocol: AMQP 0-9-1 (RabbitMQ ๊ธฐ๋ฐ˜) ๋˜๋Š” AMQP 1.0 (Azure Service Bus ๊ธฐ๋ฐ˜)
  • Port: 5671 (TLS ์•”ํ˜ธํ™” ํ†ต์‹  ํ•„์ˆ˜)
  • Fallback: ์›น์†Œ์ผ“(WebSocket) ๊ธฐ๋ฐ˜์˜ HTTPS(443) ํ†ต์‹ ์„ ์ง€์›ํ•˜์—ฌ ๋ฐฉํ™”๋ฒฝ ํ™˜๊ฒฝ์— ๋Œ€์‘ํ•ฉ๋‹ˆ๋‹ค.

2. ๋ฉ”์‹œ์ง€ ํŽ˜์ด๋กœ๋“œ ๊ตฌ์กฐ (JSON)

๋ชจ๋“  ๋ฉ”์‹œ์ง€๋Š” ์•„๋ž˜์˜ ๊ณตํ†ต ํ—ค๋”๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

{
  "header": {
    "msgId": "UUID",
    "timestamp": "ISO8601",
    "originNode": "AgentID",
    "priority": "0-9"
  },
  "payload": {
    "type": "METRIC | ISSUE | COMMAND",
    "data": { ... }
  }
}

3. ์‹ ๋ขฐ์„ฑ ๋ฐ ๋ณด์•ˆ

  • At-Least-Once Delivery: ์†Œ๋น„์ž๊ฐ€ ๋ฉ”์‹œ์ง€ ์ฒ˜๋ฆฌ๋ฅผ ์™„๋ฃŒํ•˜๊ณ  ACK๋ฅผ ๋ณด๋‚ด๊ธฐ ์ „๊นŒ์ง€๋Š” ํ์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์‚ญ์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • End-to-End Encryption: ํŽ˜์ด๋กœ๋“œ ๋ฐ์ดํ„ฐ ์˜์—ญ์€ ๋ฐœ์‹  ์‹œ์ ์—์„œ AES-256์œผ๋กœ ์•”ํ˜ธํ™”๋˜์–ด ์ „์†ก๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Circuit Breaker: ํŠน์ • ๋…ธ๋“œ์—์„œ ์ดˆ๊ณผ ํŠธ๋ž˜ํ”ฝ ๋ฐœ์ƒ ์‹œ ์ž๋™์œผ๋กœ ์ธ์ž…์„ ์ฐจ๋‹จํ•˜์—ฌ ์ „์ฒด ์‹œ์Šคํ…œ์„ ๋ณดํ˜ธํ•ฉ๋‹ˆ๋‹ค.

โš™๏ธ ๊ฐœ๋ฐœ์ž ์ฐธ๊ณ  ์‚ฌํ•ญ

  • ์—์ด์ „ํŠธ ๊ตฌํ˜„: ์‹ ๊ทœ ์—์ด์ „ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•  ๊ฒฝ์šฐ, ๋ฐ˜๋“œ์‹œ MQE SDK๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ•˜ํŠธ๋น„ํŠธ(Heartbeat) ๋ฐ ์žฌ์—ฐ๊ฒฐ(Reconnection) ๋กœ์ง์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฒ˜๋ฆฌ ์ง€์—ฐ ๋Œ€์‘: ์ปจ์Šˆ๋จธ(Consumer) ๋‹จ์˜ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋А๋ ค์ง€๋ฉด Queue Depth๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฏ€๋กœ, ์Šค์ผ€์ผ ์•„์›ƒ(Scale-out)์„ ํ†ตํ•ด ํšจ์œจ์„ ๋†’์ด์„ธ์š”.

๋ฌธ์ œ ํ•ด๊ฒฐ

์ฆ์ƒ์›์ธํ•ด๊ฒฐ
5671 ํฌํŠธ๋กœ MQE ์—ฐ๊ฒฐ์ด ์‹คํŒจํ•œ๋‹ค๋ฐฉํ™”๋ฒฝ์ด AMQP(5671) ํฌํŠธ๋ฅผ ์ฐจ๋‹จํ•จWebSocket ๊ธฐ๋ฐ˜ HTTPS(443) Fallback ํ†ต์‹ ์œผ๋กœ ์ „ํ™˜ํ•œ๋‹ค
๋™์ผํ•œ ๋ฉ”์‹œ์ง€๊ฐ€ ์ค‘๋ณต ์ฒ˜๋ฆฌ๋œ๋‹คAt-Least-Once ์ „๋‹ฌ ํŠน์„ฑ์ƒ ACK ์ด์ „์— ์žฌ์ „์†ก๋จ์ปจ์Šˆ๋จธ์—์„œ msgId๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฉฑ๋“ฑ์„ฑ ์ฒ˜๋ฆฌ๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค
Queue Depth๊ฐ€ ๊ณ„์† ์ฆ๊ฐ€ํ•œ๋‹ค์ปจ์Šˆ๋จธ์˜ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ์œ ์ž… ์†๋„๋ฅผ ๋”ฐ๋ผ๊ฐ€์ง€ ๋ชปํ•จ์Šค์ผ€์ผ ์•„์›ƒ(Scale-out)์œผ๋กœ ์ปจ์Šˆ๋จธ๋ฅผ ์ฆ์„คํ•œ๋‹ค
ํŠน์ • ๋…ธ๋“œ์˜ ๋ฉ”์‹œ์ง€ ์ธ์ž…์ด ์ฐจ๋‹จ๋œ๋‹ค์ดˆ๊ณผ ํŠธ๋ž˜ํ”ฝ์œผ๋กœ Circuit Breaker๊ฐ€ ์ž‘๋™ํ•จํŠธ๋ž˜ํ”ฝ ์ •์ƒํ™” ํ›„ Heartbeat/์žฌ์—ฐ๊ฒฐ ๋กœ์ง์„ ํ†ตํ•ด ์žฌ์ ‘์†ํ•œ๋‹ค

๋ฒ„์ „: 1.0 ์ตœ์ข… ์—…๋ฐ์ดํŠธ: 2026-03-19 ์†Œ์Šค ํŒŒ์ผ: giipv3/public/help/mqe-spec.ko.md