IoT Sensor Data Pipeline for Smart Factories
๐บ๏ธ Overview
์ค๋น์ ์จ๋ ์ผ์์์ ์ค๋ ๋ฐ์ดํฐ ์์ง ๋ฐ ์๊ฐํํ๋ ์๋น์ค์ ๋๋ค.
๊ฐ๋ฐ์ ์์ํ๊ณ ๋ ํ ์ฒซ ํ์ฌ, ์ฒซ ์ธํด์ด์๋ค.
๊ฐ๋ฐ ๊ฒฝํ์ด ๋ง์ ๊ฒ๋ ์๋์๊ธฐ์ ํ์ฌ์ ํผํด๊ฐ ๊ฐ๊น๋ด ๊ฑฑ์ ์ ์์ฒญ ํ๋ค.
๊ทธ๋์ ํ์ฌ ๋ค์ด๊ฐ๊ธฐ ์ ์ ๋ฏธ๋ฆฌ ์ฌ์ฉํ๊ฒ ๋ ์คํ์ด๋ ๋๋ฉ์ธ ์ง์๊ฐ์ ๊ฒ๋ค์ ๊ณต๋ถํ๋ค.
์ง๊ธ ์๊ฐํ๋ฉด ๋ ธ๋ จํจ๋ณด๋ค ์ด์ ์ด ์์ฐ๋ ๊ฒ ๊ฐ๋ค.
๋น์ ํ๋ก์ ํธ๋ฅผ ํตํด ๋ฐฐ์ด ๊ฒ์ด ์ ๋ง ๋ง์๋ค.
1๏ธโฃ ์ฒซ ๋ฒ์งธ๋ก ์ค๋ฌด ์ญ๋์ด ์ฑ์ฅํ์๋ค.
ํ ๋ด ์๋์ด ๊ฐ๋ฐ์๊ฐ ์์๋ค.
๊ฐ๋ฐ์ ์ํ๋ ๋๋ฃ๋ค์ ์์์ง๋ง ์ด๋์ด์ ๋ฐฉํฅ์ ํ์คํ๊ฒ ์ง์ํด์ค ์๋์ด๊ฐ ์๋ค๋ณด๋ ํ๋ก์ ํธ ๋งค๋์ง์ ์ด๋ ค์์ ๋ง์ด ๊ฒช์๋ค. ์๋ฅผ ๋ค๋ฉด ๊ณ ๊ฐ๊ณผ์ ์ํต, ์๋น์ค ๊ธฐ๋ฅ๋ช ์ธ, ๋ฌธ์ํ, ์ญํ ๋ฐฐ๋ถ, ์ผ์ ๊ด๋ฆฌ, ์ํต, ๋ฐฐํฌ, ํผ๋๋ฐฑ, ์ด์ ๋ฑ๋ฑ ์ ์ด๋ณด๋ ๊ฑฐ์ ์ ๋ฐ์ ์ธ ๋ถ๋ถ์์ ์ด๋ ค์์ ๊ฒช์๋ ๊ฒ ๊ฐ๋ค ํํ..
ํ ๋ด์์๋ ๋๋ฆ๋๋ก ๋ฌธ์ ๋ฅผ ์ธ์งํ๊ณ ํด๊ฒฐํ๋ ค๊ณ ๋ ธ๋ ฅ๋ ๋ง์ด ํ๋ค. ๋ฏธํ ์ ์งํํ๋ฉฐ ๋งค์ฃผ ๊ฐ์ ์ ๋ค์ ์ฐพ์๊ฐ๊ณ , ์ฌ๋์ผ๋ก ์งํ์ํฉ๋ ์์ฃผ ๊ณต์ ํ๊ณ , Jira/Confluence๋ ๋์ ํ๊ณ , Gitlab Merge Request๋ ๋์ ํ๊ณ ... ํ์ ์ค ๊ฒฝํ์ด ๊ทธ๋๋ง ๋ง์ผ์ ๋ถ์ด ์ ๊ทน์ ์ผ๋ก ๋ฆฌ๋ฉํ์๋ ค๊ณ ๋ ธ๋ ฅ๋ ๋ง์ด ํ๋ค.
End-to-End ๊ณผ์ ์ ์ง์ ๊ฒช์ผ๋ฉด์ ์คํํธ์ ์์ ์ ๋ฐ์ ์ธ ์ค๋ฌด ํ๊ฒฝ์ ๋ํด ์ดํดํ๊ณ ๋ชธ์ ์ตํ๋ค.
๋ํ ์คํํธ์ ์ธ ๋งํผ ํน์ ๋ถ์ผ์ ํ์ ๋์ง ์๊ณ BackEnd, FrontEnd, DevOps๋ฅผ ์ง์ ๊ฒฝํํ ์ ์๋ ๊ฒ๋ ์ดํ์ ๋์์ด ๋ง์ด ๋์๋ค.
์ดํ ๋ ๋ฒ์งธ ํ์ฌ์์ ๋ฐฐ์ด ๊ฒ๋ค์ ํ ๋๋ก ํจ์จ์ ์ผ๋ก ์ ๋ฌด๋ฅผ ์ฒ๋ฆฌ ํ ์ ์์๋ค.
2๏ธโฃ ๋ ๋ฒ์งธ๋ก ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ด๋ค. (๋น์ ๊ฐ์ท์ผ๋ฉด ๋ ์ข์์ผ๋ ค๋ง ใ .ใ )
์นจ์ฐฉํ๊ณ ์ฐจ๋ถํ๊ฒ ์ค์ง์ ์ผ๋ก ๋ฌธ์ ์ ์์ธ์ ๋ถ์ํ๊ณ , ํ๋ ํ๋ ํด๊ฒฐํ๋ ๊ฑธ ๋งํ๋๊ฑฐ๋ค.
์ฃผ์ : ๋ฌด์์ ํ ์ ์์์ง ๋์ฒ ํ๊ฒ ํ๋จํ๊ธฐ
ํด๊ฒฐ๋ฐฉ๋ฒ์ ๊ตฌ๊ธ๋ง ๋ฅ๋ ฅ์ด ๋ ์๋, ๊ฒฝํ์ด ๋ ์๋, ์ง๋ฌธํ๋ ๊ฒ์ด ๋ ์๋ ์๋ค. ๊ธฐํ ๋ฑ๋ฑ
๊ทธ๋ฆฌ๊ณ ์ด ๊ณผ์ ์ด ๋์ฒ ํ๊ณ , ์ ํํ๊ณ , ๋น ๋ฅผ์๋ก ์ข๋ค. ์ค์ฒ๋ ฅ๊ณผ ์คํ๋ ฅ์ ํ์๋ค.
์ธํด ๋น์ ๊ธฐ๋ฅ ๊ตฌํ ๋ฅ๋ ฅ๋ ๋ถ์กฑํ๊ณ ๋ฉํ ๊ด๋ฆฌ ๋ฅ๋ ฅ๋ ์์๋ค.
์๋ฌ ํด๊ฒฐ ๋ฐฉ์์ด๋ ๊ธฐ๋ฅ ๊ตฌํ ๋ํผ๋ฐ์ค๋ฅผ ๋ฐค์ ์ฐพ์๋๋ฐ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ ๋ชปํด ๋ช ์ฃผ๋์ ๋ถ๋ค๊ณ ๊ณ ์ํ๋ ์ ๋ ์์๋ค.
๋ ๋ค๋ฅธ ์ฐ๋ก๋ GCP ์๋น์ค๋ฅผ ์ฌ์ฉํ๋๋ฐ ๋จ์๋ฅผ ์๋ชป๋ณด๊ณ 1000์ ๋์จ๊ฑธ 100๋ง์์ผ๋ก ์๋ชป๋ณด๊ณ ์๊ฐ ์ฌ์ฅ ๋ด๋ ค์์๋ค.
ํ์๋คํํ ๋๋ฌด ๋ฏธ์ํ๊ณ ๋ ์์ ๋ ์ซ์ด์ก๋ค. ์ฝ์ง๋ ์ ๋ง ๋ง์ด ํ๋๋ฐ, ์๊ฐ ์ง๋๊ณ ๋ฉํ ๋ง๋ ํ๊ณ ๋ค์ํ ๊ฒฝํ์ ํ๋ค๋ณด๋ ์ ๋ ๊ฒฝํํ ๊ฒ๋ค์ด ์ฑ์ฅํ ์ ์์๋ ๋ฐ๊ฑฐ๋ฆ์ด ๋ ๊ฒ ๊ฐ๋ค.
๋ํ ๊ฐ๋ฐ์ ์ํ๋ ํ์๋ค์ ๋ณด๋ฉด์๋ ๋ง์ด ๋ฐฐ์ ๋ค. ์ํ๋ ์ฌ๋๋ค ๋ณด๊ณ ๋ฐฐ์ฐ๋๊ฒ ์ผ๋ง๋ ์ค์ํ์ง ๋๊ผ๋ค.
๋ฆ์์ง๋ง ๋ค๋ค ๊ณ ๋ง๋ค ํํ ..
๋ค์ ํ๋ก์ ํธ ์๊ธฐ๋ก ๋์์ค์.
์์ ์ค๋ช ํ ๊ฒ์ฒ๋ผ '์ผ์์์ ์ค๋ ๋ฐ์ดํฐ ์์ง ๋ฐ ์๊ฐํํ๋ ์๋น์ค'๋ค.
๋ด๊ฐ ๋งก์ ์ญํ ์ ๋ค์๊ณผ ๊ฐ์๋ค.
์ค์๊ฐ ๊ธฐ๊ธฐ์ ์จ๋ ๋ฐ์ดํฐ ์๊ฐํ
GCP์ BigQuery์ ์๋ ๋ฐ์ดํฐ๋ฅผ Google Data Studio๋ฅผ ๋ด๋ณด๋ธ ํ ์ฐจํธ๋ค์ ์ฌ์ฉํ์ฌ ์จ๋ ์๊ฐํ
Backend ์๋น์ค ๋ฐฐํฌ
Gitlab, Gitlab CI๋ฅผ ํตํด CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถ(build, push, deploy)
GCP GKE(Google Kubernetes Engine)์ Spring Boot framework๋ฅผ ์ฌ์ฉํ ์๋น์ค ๋ฐฐํฌ
์๋๋ ํ์์ด ์งํํ ๋ถ๋ถ์ด๋ค. ๊ทธ ํ์์ ์ฝ๋ ์คํ์ผ์ด๋ ๋ํผ๋ฐ์ค ์ฌ์ฉํ๋ ๋ฐฉ์, ์ฝ๋ฉํ๋ ๊ด์ ๋ฑ ๋ง์ด ๋ฐฐ์ ๋ค.
IoT Sensor ๋ฐ์ดํฐ ๋ก๋ API ๊ฐ๋ฐ
Gateway์์ ์ค๋ ์จ๋ ๋ฐ์ดํฐ๋ฅผ BIgQuery๋ก ๋ก๋ํ๋ RESTful API ๊ฐ๋ฐ
Express.js๋ก PoC๋ฅผ ๊ฐ๋ฐํ๊ณ , ์ดํ ํ์ฅ์ฑ๊ณผ ์์ ์ฑ์ ์ํด Spring Boot๋ก ๋ฆฌํฉํฐ๋ง
๋ ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ ํ์ ์นดํ ๊ณ ๋ฆฌ์์ ํ์ธํ ์ ์๋ค.
Spring Boot API gateway ๊ฐ๋ฐ
GCP BigQuery์ ๋ฐ์ดํฐ ์ ์ฅ, ํ์ฉํ๋ฉฐ Datawarehouse ์ดํดํ๊ธฐ
GCP์ BI ํด Data Studio๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ดํฐ ์๊ฐํํ๊ธฐ
GCP, Gitlab ๊ธฐ๋ฐ CI/CD ํ์ดํ๋ผ์ธ ๊ตฌ์ฑํ๊ธฐ
Last updated