์ฑ ๊ตฌ์กฐ
๋ชจ๋ IronFlock ์ฑ์ ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋์ ์ ํ์ ์ธ .ironflock ๊ตฌ์ฑ ๋๋ ํฐ๋ฆฌ๊ฐ ํฌํจ๋ Git์ผ๋ก ๋ฒ์ ๊ด๋ฆฌ๋๋ ํด๋์
๋๋ค.
๋๋ ํฐ๋ฆฌ ๋ ์ด์์
my-app/
โโโ Dockerfile # ํ์: ์ปจํ
์ด๋ ์ด๋ฏธ์ง ์ ์
โโโ docker-compose.yml # ์ ํ ์ฌํญ: ๋ค์ค ์ปจํ
์ด๋ ์ค์
โโโ main.py # ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋ (๋ชจ๋ ์ธ์ด)
โโโ requirements.txt # ์์กด์ฑ
โโโ .ironflock/
โโโ board-template.yml # ๋์๋ณด๋ ๋ ์ด์์
โโโ data-template.yml # ํ
๋ ๋ฉํธ๋ฆฌ๋ฅผ ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง
โโโ env-template.yml # ์ฌ์ฉ์ ๊ตฌ์ฑ ๊ฐ๋ฅํ ํ๋ผ๋ฏธํฐ
โโโ port-template.yml # ์๊ฒฉ ์ ๊ทผ ํฌํธ ์ ์
โโโ ai-template.yml # AI ์์ด์ ํธ ์ ์์ฑ์ ์ฌ์ฏ ๊ฐ์ง ๊ตฌ์ฑ ์์
1. ์ฃ์ง ์ฝ๋
ํต์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ๋๋ค. ์ด ์ฝ๋๋ ๋๋ฐ์ด์ค์ Docker ์ปจํ ์ด๋ ๋ด์์ ์คํ๋๋ฉฐ ์ผ์, PLC, ์นด๋ฉ๋ผ, ๋๋ ์ฐ๊ฒฐ๋ ํ๋์จ์ด์์ ํต์ ์ ์ฒ๋ฆฌํฉ๋๋ค.
์ฃ์ง ์ฝ๋๋ ๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด โ Python, JavaScript, Go, Rust, C++, ๋๋ Docker ์ปจํ ์ด๋์์ ์คํ๋๋ ๋ชจ๋ ์ธ์ด โ ๋ก ์์ฑํ ์ ์์ต๋๋ค.
2. ๋ณด๋ (์ฌ์ฉ์ ์ธํฐํ์ด์ค)
๋ ธ์ฝ๋ Board Editor๋ก ๊ตฌ์ถ๋ ์ค์๊ฐ ๋์๋ณด๋์ ๋๋ค. ๋ณด๋๋ ํ๋ก์ ํธ์์ ์ฑ์ ์คํํ๋ ๋ชจ๋ ๋๋ฐ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๊ณ ๋ฉ์์ง ์์คํ ์ ํตํด ์๋์ผ๋ก ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
๋ณด๋ ๊ตฌ์ฑ์ board-template.yml์ ์ ์ฅ๋๋ฉฐ ์๋ํฐ์ ์ํด ์๋ ์์ฑ๋ฉ๋๋ค.
3. ๋ฐ์ดํฐ ์ ์ฅ
๊ฐ ํ๋ก์ ํธ๋ ์์ฒด ๋ฌผ๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค(TimescaleDB๋ก ๊ตฌ๋)๋ฅผ ๊ฐ์ง๋๋ค. ์ฑ์ด data-template.yml์์ ํ
์ด๋ธ์ ์ ์ํ๋ฉด ์ฌ์ฉ์๊ฐ ์ฑ์ ์ค์นํ ๋ ํด๋น ํ
์ด๋ธ์ด ์๋์ผ๋ก ํ๋ก๋น์ ๋๋ฉ๋๋ค. ๋ฐ์ดํฐ๋ ํ๋ก์ ํธ๋ณ๋ก ๋น๊ณต๊ฐ โ ๊ฐ๋ฐ์๋ ์ฌ์ฉ์ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์์ต๋๋ค.
4. ๋ฉ์์ง ์์ญ
์ค์น๋๋ฉด ์ฑ์ ๋ค์์ ์ฐ๊ฒฐํ๋ ๊ฐ์ธ ๋ฉ์์ง ์์ญ์ ์ป์ต๋๋ค:
- ์ฃ์ง ๋๋ฐ์ด์ค์ ๋ชจ๋ ์ฑ ์ธ์คํด์ค
- ํ๋ก์ ํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋ณด๋ UI
ํต์ ์ IronFlock SDK(ironflock-py for Python, ironflock-js for JavaScript, ironflock-go (github.com/ironflock/sdk-go) for Go)๋ฅผ ํตํด WAMP(Web Application Messaging Protocol)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
5. ์๊ฒฉ ์ ๊ทผ
port-template.yml์์ ํฌํธ์ ํ๋กํ ์ฝ์ ์ ์ํ์ฌ ๋๋ฐ์ด์ค ์๋น์ค์ ๋ํ ๋ณด์ ํฐ๋๋ง์ ํ์ฑํํฉ๋๋ค. ํ๋ก๋์
๋๋ฐ์ด์ค์ ์ฑ์ ์ค์นํ๋ฉด ์ด๋ฌํ ํฐ๋์ด ์ผ์ง๋ฉฐ, network ๊ถํ์ด ์๋ ์ฌ์ฉ์๋ ๋๋ฐ์ด์ค๋ณ๋ก ํฐ๋์ ๊ป๋ค๊ฐ ๋ค์ ์ผค ์ ์์ต๋๋ค. ์๊ฒฉ ์ ๊ทผ์ ์ฐธ์กฐํ์ญ์์ค.
6. AI ์์ด์ ํธ
ai-template.yml์ ํตํด ๋๋ฉ์ธ๋ณ AI ์์ด์ ํธ๋ฅผ ๋
ธ์ถํ์ฌ IronFlock AI ์ด์์คํดํธ๋ฅผ ํ์ฅํฉ๋๋ค. AI ๊ธฐ๋ฅ์ ์ฐธ์กฐํ์ญ์์ค.
๋๋ฐ์ด์ค์ ์๊ตฌ ์ ์ฅ์
๊ธฐ๋ณธ์ ์ผ๋ก ์ปจํ ์ด๋ ๋ด์ ๋ฐ์ดํฐ๋ ์ฌ์์ ์ ์์ค๋ฉ๋๋ค. ๋ ๋๋ ํฐ๋ฆฌ๋ ์ฌ์์ ํ์๋ ์ ์ง๋ฉ๋๋ค:
| ๊ฒฝ๋ก | ๋ฒ์ |
|---|---|
/data | ์ด ์ฑ์๋ง ๋น๊ณต๊ฐ โ ๋ค๋ฅธ ์ฑ์ ์ ๊ทผํ ์ ์์ |
/shared | ๋๋ฐ์ด์ค์ ๋ชจ๋ ์ฑ ๊ฐ์ ๊ณต์ |
์ปจํ
์ด๋๊ฐ ์ด๋ค ์ฌ์ฉ์๋ก ์คํ๋๋ ์ฑ์ /data์ ์ธ ์ ์์ต๋๋ค.
Docker Compose๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ docker-compose.yml์์ ์๊ตฌ ๋ณผ๋ฅจ์ ๊ตฌ์ฑํฉ๋๋ค.
ํ๋์จ์ด ์ ๊ทผ
์ฑ์ด ๋ก์ปฌ ํ๋์จ์ด(์ผ์, ์นด๋ฉ๋ผ, ์๋ฆฌ์ผ ๋๋ฐ์ด์ค)์ ์ํธ์์ฉํ๋ ๊ฒฝ์ฐ ํน๊ถ ์ ๊ทผ์ด ํ์ํฉ๋๋ค. data-template.yml์ ์ ์ธํ๋ฉด ์ฌ์ฉ์๊ฐ ์ฑ์ ์ค์นํ ๋ ํ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ๋จ์ผ ์ด๋ฏธ์ง ์ฑ์์๋ ๋๋ฐ์ด์ค์ ํ๋์จ์ด๊ฐ ์ปจํ
์ด๋ ๋ด /dev์ ๋ง์ดํธ๋ฉ๋๋ค.