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

Coding Planet

[๋ฐ์ดํ„ฐํ—ˆ๋ธŒ] ๋ฐ์ดํ„ฐ ํ๋ฆ„ ํ†บ์•„๋ณด๊ธฐ - ๋ฐ์ดํ„ฐ ์ฝ”์–ด ๋ชจ๋“ˆ(Data Core Module) ๋ณธ๋ฌธ

๐Ÿ‘ฉ‍๐Ÿ’ป Project

[๋ฐ์ดํ„ฐํ—ˆ๋ธŒ] ๋ฐ์ดํ„ฐ ํ๋ฆ„ ํ†บ์•„๋ณด๊ธฐ - ๋ฐ์ดํ„ฐ ์ฝ”์–ด ๋ชจ๋“ˆ(Data Core Module)

jhj.sharon 2024. 1. 9. 16:04
๋ฐ˜์‘ํ˜•
๋ฐ์ดํ„ฐ ์ฝ”์–ด ๋ชจ๋“ˆ์€
Data manager, Data service broker, Data streaming broker, Ingest interface, Push agent, Admin UI, Dashboard ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

 

1. Data manger

:๋ฐ์ดํ„ฐ ๋ชจ๋ธ ๊ด€๋ฆฌ, ๋ฐ์ดํ„ฐ ์…‹ ๊ด€๋ฆฌ, ๋ฐ์ดํ„ฐ ์…‹ ํ”Œ๋กœ์šฐ ๊ด€๋ฆฌ, ๋ฐ์ดํ„ฐ ์ ‘๊ทผ๋ฐ์–ด ๊ด€๋ฆฌ, ๋ฐ์ดํ„ฐ ์ƒ์•  ์ฃผ๊ธฐ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ ๊ฑฐ๋ฒ„๋„Œ์Šค ๋‹ด๋‹น

 

๋ฐ์ดํ„ฐ์…‹

: ๋ฐ์ดํ„ฐ์˜ ๋ชจ์Œ. ์ผ๋ฐ˜์ ์œผ๋กœ ๋น„์Šทํ•œ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ์•„์ ธ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋Š” ์ฃผ์ œ, ๋ชฉ์  ๋˜๋Š” ๋ถ„์„ ๋ชฉํ‘œ์— ๋”ฐ๋ผ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ฐ์ดํ„ฐ์˜ ํŒจํ„ด, ํŠน์„ฑ ๋˜๋Š” ๊ด€๊ณ„๋ฅผ ์ดํ•ดํ•˜๊ณ  ์ •๋ณด๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

 

๋ฐ์ดํ„ฐ ๊ฑฐ๋ฒ„๋„Œ์Šค

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

 

 

2. Data Service Broker

: NGSI-LD API ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ์ œ๊ณต ๋‹ด๋‹น

  • ๋ฐ์ดํ„ฐ ์„œ๋น„์Šค ๋ธŒ๋กœ์ปค๋Š” ๋ฐ์ดํ„ฐ ์†Œ์Šค์™€ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ์ž ๊ฐ„์˜ ์ค‘๊ฐœ์ž ์—ญํ• ์„ ํ•˜๋Š” ์‹œ์Šคํ…œ์ด๋‹ค. ์ด ์‹œ์Šคํ…œ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘, ๊ด€๋ฆฌ ,๊ทธ๋ฆฌ๊ณ  ํ•„์š”ํ•œ ๊ณณ์— ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. NGSI-LD API ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ์ œ๊ณต์„ ๋‹ด๋‹นํ•œ๋‹ค.
  • NGSI-LD API ์ธํ„ฐํŽ˜์ด์Šค: IoT ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. API๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋˜๋Š” ์‹œ์Šคํ…œ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒํ•˜๋Š” ๋„๊ตฌ์™€ ๊ทœ์•ฝ์˜ ์ง‘ํ•ฉ์ด๋‹ค. ๋”ฐ๋ผ์„œ NGSI-LD API ์ธํ„ฐํŽ˜์ด์Šค๋Š” IoT์žฅ์น˜์™€ ์‹œ์Šคํ…œ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•œ ํ‘œ์ค€ํ™”๋œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค.

 

3. Data Streaming Broker

:Apache Kafka ๊ธฐ๋ฐ˜ ๋ฉ”์‹œ์ง€ ํ๋กœ ๋ฐ์ดํ„ฐ ์…‹ ๋ณ„ ํ† ํ”ฝ ๊ด€๋ฆฌ, ์ด๋ฒคํŠธ ๋ฉ”์‹œ์ง€ ๋ฐ ํ†ต์ง€ ์š”์ฒญ ๋ฉ”์‹œ์ง€ ํ† ํ”ฝ ๊ด€๋ฆฌ. Ingest interface: ๋ฐ์ดํ„ฐ ์…‹ ๋ณ„ ์ˆ˜์ง‘ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณต, ๋ฐ์ดํ„ฐ ์…‹์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์— ๋”ฐ๋ฅธ ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ ๊ธฐ๋Šฅ ์ œ๊ณต, ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ์†Œ์Šค์— ๊ด€ํ•œ ์ธ์ฆ ๊ธฐ๋Šฅ ์ œ๊ณต

**Apache Kafka : ๋Œ€์šฉ๋Ÿ‰์˜ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ๋ถ„์‚ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ํ”Œ๋žซํผ์ด๋‹ค. Kafka๋Š” ๋ฉ”์‹œ์ง€ ํ ์‹œ์Šคํ…œ์˜ ํ•œ ํ˜•ํƒœ๋กœ ๋ฉ”์‹œ์ง€(๋ฐ์ดํ„ฐ)๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ์ „๋‹ฌํ•œ๋‹ค.

 

  • ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ธŒ๋กœ์ปค๋Š” ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก, ์ฒ˜๋ฆฌ ๋ฐ ๊ด€๋ฆฌํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ์€ ์ง€์†์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๊ทธ ๋Ž…์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ „์†กํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•œ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ ๋ธŒ๋กœ์ปค๋Š” Apache Kafka๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์„ธ์ง€ ํ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•œ๋‹ค. 
  • Kafka์—์„œ 'ํ† ํ”ฝ'์€ ๋ฉ”์„ธ์ง€(๋ฐ์ดํ„ฐ)๋ฅผ ๊ตฌ๋ถ„ํ•˜๋Š” ์นดํ…Œ๊ณ ๋ฆฌ๋‚˜ ์ฃผ์ œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ์…‹ ๋ณ„ ํ† ํ”ฝ ๊ด€๋ฆฌ๋Š” ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ํ† ํ”ฝ์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜์—ฌ ๊ด€๋ฆฌํ•œ๋‹ค.
  • ์ด๋ฒคํŠธ ๋ฉ”์„ธ์ง€(์‹œ์Šคํ…œ์ด๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋ฐœ์ƒํ•˜๋Š” ์‚ฌ๊ฑด์— ๋Œ€ํ•œ ์ •๋ณด)์™€ ํ†ต์ง€ ์š”์ฒญ ๋ฉ”์„ธ์ง€(์–ด๋–ค ์ž‘์—…์ด๋‚˜ ์ด๋ฒคํŠธ์— ๋Œ€ํ•œ ์•Œ๋ฆผ์„ ์š”์ฒญํ•˜๋Š” ๋ฉ”์„ธ์ง€)๋ฅผ ๋ณ„๋„์˜ ํ† ํ”ฝ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

 

4. Push agent

: ๋ฐ์ดํ„ฐ ๊ตฌ๋… ๊ธฐ๋ฐ˜ NGSI-LD ํ†ต์ง€ ๋ฉ”์‹œ์ง€ ์ „์†ก

  • Push Agent๋Š” ๋ฐ์ดํ„ฐ๋‚˜ ์ •๋ณด๋ฅผ ์ˆ˜์‹ ์ž์—๊ฒŒ ์ž๋™์œผ๋กœ ์ „์†กํ•˜๋Š” ์‹œ์Šคํ…œ ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ด๋Š” ์‚ฌ์šฉ์ž๋‚˜ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์ด ๋ช…์‹œ์ ์œผ๋กœ ์š”์ฒญํ•˜์ง€ ์•Š์•„๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ์ „์†กํ•˜๋Š” 'ํ‘ธ์‹œ'์—ญํ• ์„ ํ•œ๋‹ค.
  • ๋ฐ์ดํ„ฐ๊ตฌ๋… ๊ธฐ๋ฐ˜์ด๋ž€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹์ด ๊ตฌ๋…์ž์˜ ์š”๊ตฌ์— ์˜ํ•ด ๊ฒฐ์ •๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์‚ฌ์šฉ์ž ๋˜๋Š” ๋‹ค๋ฅธ ์‹œ์Šคํ…œ์ด ํŠน์ • ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด '๊ตฌ๋…'์„ ํ•˜๋ฉด, ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ์ •๋ณด๊ฐ€ ์ƒ๊ธธ ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ์ด๋ฅผ ๋ฐ›๊ฒŒ ๋œ๋‹ค.
  • ํŠน์ • ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๊ตฌ๋…ํ•œ ์‚ฌ์šฉ์ž๋‚˜ ์‹œ์Šคํ…œ์—๊ฒŒ NGSI-LD ํ˜•์‹์˜ ํ†ต์ง€ ๋ฉ”์‹œ์ง€๋ฅผ ์ž๋™์œผ๋กœ ๋ณด๋‚ด๋Š” 'ํ‘ธ์‹œ ์—์ด์ „ํŠธ'์˜ ์—ญํ• ์„ ํ•œ๋‹ค.์‹ค์‹œ๊ฐ„ ์ •๋ณด ํ†ต์‹ ๊ณผ ์ž๋™ํ™”๋œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์— ๊ธฐ์—ฌํ•œ๋‹ค.

 

๋ฐ˜์‘ํ˜•
Comments