WISE-PaaS - (Platform as a Service) ์ฐ์
์ฉ ์ฌ๋ฌผ ์ธํฐ๋ท์ ์ํ ์ด๋๋ฐดํ
ํด๋ผ์ฐ๋ ํ๋ซํผ์ผ๋ก, ๋ฐ์ดํฐ ์์ง, ์ฒ๋ฆฌ ๋ฐ ์๊ฐํ, ์๋ํ, ์ธ๊ณต ์ง๋ฅ ๋ฐ ๊ธฐ๊ณ ํ์ต ์ฅ์น ๋ฐ ์์คํ
๊ด๋ฆฌ๋ฅผ ์ํ ๋ค์ํ ๋๊ตฌ๋ฅผ ๊ฒฐํฉํฉ๋๋ค. ์ด ํ๋ซํผ์ ์ฐ์
, ์๋ฃ, ์ ์กฐ, ๋ฌผ๋ฅ ๋ฑ์ ๋ถ์ผ์์ ๋ณต์กํ ์์คํ
์ ๊ตฌ์ถํ๊ธฐ ์ํ ์ฌ๋ฌ ๊ฐ์ง ๊ธฐ์ฑ ์ํํธ์จ์ด ์๋ฃจ์
์ธํธ๋ฅผ ๊ฒฐํฉํฉ๋๋ค.
WISE/PaaS ํ๋ซํผ์ ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด Amazon Web Services(AWS), Google Cloud Platform(GCP) ๋ฐ Microsoft Azure๋ฟ๋ง ์๋๋ผ OpenStack์์ ๋ก์ปฌ๋ก ์คํ๋ ์ ์์ต๋๋ค.
์ด ๊ธฐ์ฌ์์๋ ์ธํ๋ผ ๊ตฌ์ถ์ ๋ฐฉํด๋ฐ์ง ์๊ณ ์ ํ๋ฆฌ์ผ์ด์
์ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ ์ ์๋ WISE/PaaS ์ปดํ๋ ์ค์ ์ผ๋ถ ์ํํธ์จ์ด ์ ํ์ ๋ํด ์ค๋ช
ํฉ๋๋ค. Java, .NET, Ruby on Rails, Node.js, Grails, Scala on Lift, Python PHP๋ ๋ฌผ๋ก ์ฃผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ง์ธ MySQL, MongoDB, PostgreSQL, Redis, RabbitMQ ๋ฑ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ธ์ด๋ก ์ ํ๋ฆฌ์ผ์ด์
์คํ์ ์ง์ํฉ๋๋ค. ๋ฐ์ดํฐ ์๊ฐํ๋ฅผ ์ํด Grafana ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฒ ๋๋ ์์คํ
์ ์ํ ๋ณ๋์ ์ํํธ์จ์ด ๋๊ตฌ ์ธํธ๋ ์ด๊ธฐ ์ฅ์น ๊ตฌ์ฑ, ํ์จ์ด ์
๋ฐ์ดํธ ๋ฐ IoT ์ฅ์น์ ๋ฐ์ดํฐ ์์ง์ ๋จ์ํํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๋ง์ผํ๋ ์ด์ค
ํ๋ซํผ์ ํ์์ ๋ฐ๋ผ ๊ตฌ๋งคํ ์ ์๋ ๋ค์ํ ๋๊ตฌ์ ์์ฑ์๋ฅผ ์ ๊ณตํฉ๋๋ค.
์์ฅ์ ์ํํธ์จ์ด ์๋ฃจ์ ์ ๋ชฉ์ ์ ๋ฐ๋ผ ์ฌ๋ฌ ๊ฐ์ง ํฐ ๋ฒ์ฃผ๋ก ๋๋ฉ๋๋ค.
ํด๋ผ์ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ด๋ฆฌ ์์คํ โ ์ค์ผ์คํธ๋ ์ดํฐ, ๋ชจ๋ํฐ๋ง, ๋ฐฑ์์ต์ข ์ฅ์น ๊ด๋ฆฌ โ ํ์จ์ด ์ ๋ฐ์ดํธ, ์ฅ์น์์ ๋ฐ์ดํฐ ์์ง, ๋ชจ๋ํฐ๋ง, ์๋ ๊ตฌ์ฑ๋ณด์ โ ์นจ์ ํ์ง ๋ฐ ์๋ฐฉ ์์คํ (IPS/IDS), ๋ฐ์ด๋ฌ์ค ๋ฐฑ์WISE-Paas/AFS โ ์ธ๊ณต ์ง๋ฅ, ๊ธฐ๊ณ ํ์ต ๋ฐ ์ปดํจํฐ ๋น์ ์์คํ .
๋ฌด๋ฃ๋ก ํ
์คํธํ๋ ค๋ฉด WISE/PaaS ํฌํธ์ ๋ฑ๋กํ๊ณ ํ๊ฐํ ๊ตฌ๋
์ ๋ฑ๋กํด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ๋ง์ผํ๋ ์ด์ค์์ ๊ด์ฌ ์๋ ์ ํ์ ์ ํํ๊ณ ํ๊ฐํ ์์์ ํด๋ฆญํด์ผ ํฉ๋๋ค.
์์คํ
์ ๋ก๊ทธ์ธํ๊ธฐ ์ํ ํฌํธ ์ฃผ์๋ ๋ฑ๋ก ์ ์ ํํ ๋ฐ์ดํฐ ์ผํฐ์ ๋ฐ๋ผ ๋ค๋ฆ
๋๋ค. ํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฐ์ดํฐ์ผํฐ๋ Azure(ํ์ฝฉ, ๋ฒ ์ด์ง), Alibaba Cloud(ํญ์ ์ฐ)์
๋๋ค.
๊ฐ๊ฐ์ ์ง์ ์ ์ฃผ์:
ํ๊ฐํ ์ฌ์ฉ ๊ธฐ๊ฐ์ด ๋๋ ํ ์ด๋ฉ์ผ๋ก ๋ฐ์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ดํ์ ๋ก๊ทธ์ธํด์ผ ํฉ๋๋ค.
WISE-PaaS/๋์๋ณด๋
WISE-PaaS/Dashboard - ํ๋ ์์ํฌ ๊ธฐ๋ฐ์ ๋ฐ์ดํฐ ์๊ฐํ ๋๊ตฌ ์ธํธ
๋ฐ์ดํฐ ์๊ฐํ ํ๋ซํผ WISE-PaaS/Dashboard
์์ ฏ
Grafana ํ๋ ์์ํฌ์๋ ํ ์ด๋ธ, ๊ทธ๋ํ, ์ฐจํธ, ์ด ์ง๋ ๋ฑ ๋ฐ์ดํฐ ํ์๋ฅผ ์ํ ๋ค์ํ ์ต์ ์ด ์์ต๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ ์ด ๊ฑฐ์ ์์ด๋ ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ํ์ํ ์ ์๋ ๋ณธ๊ฒฉ์ ์ธ ๋์๋ณด๋๋ฅผ ๋ง๋ค ์ ์์ผ๋ฉฐ, ๋ง์ฐ์ค๋ง์ผ๋ก ์์ ฏ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๋์๋ณด๋์ grafana ์์ ฏ์ ์ถ๊ฐํ๊ธฐ ์ํ ์ธํฐํ์ด์ค
๋ด์ฅ ์์ ฏ ์ธ์๋ ๋ค๋ฅธ ์์คํ ๊ณผ์ ํตํฉ์ ์ํด ํ์ฌ ํ๋ฌ๊ทธ์ธ์ ์ค์นํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, Zabbix ๋ชจ๋ํฐ๋ง ์์คํ ์ฉ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ฉด ํด๋น ํ๋ฌ๊ทธ์ธ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ๋ชจ๋ํฐ๋ง ์์คํ ์์ ์๋ฆผ์ ํ์ํ ์ ์์ต๋๋ค.
๋ฐ๋ผ์ WISE-PaaS/Dashboard๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์ํ ์์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ฒฐํฉํ์ฌ ๋จ์ผ ํจ๋์ ํ์ํ ์ ์์ต๋๋ค.
Grafana ์ธํฐํ์ด์ค์ Zabbix ๋ชจ๋ํฐ๋ง ์์คํ
๋ฐ์ดํฐ
๋ฐ์ดํฐ ์์ค
๋์๋ณด๋๋ ๋ค์ํ ์์ค๋ก๋ถํฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์์ ํ ์ ์์ต๋๋ค. ํ์ฌ ์ง์๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค: CloudWatch, Elasticsearch, Graphite, InfluxDB, MySQL, OpenTSDB, PostgreSQL, Prometheus, RMM-SimpleJson, SCADA-SimpleJson, SimpleJson. ์ด๋ฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์๋ ๋ค์ํ ์์ค์์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๋๋ก ์ฟผ๋ฆฌ ํ์์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์์คํ ์ ์ฐ๊ตฌํ๋ ๋ฐ ํ ์คํธ ๋ฐ์ดํฐ ์ธํธ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Grafana๋ ๋ค์ํ ๋ฐ์ดํฐ ์์ค๋ฅผ ์ง์ํฉ๋๋ค.
์ด์ ์๋ฆผ
ํน์ ์ด๋ฒคํธ์ ์๋ตํ๊ธฐ ์ํด Dashboard๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์ํ ์๋ฆผ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ด๋ ์๋ํ๋ API ํธ์ถ์ด๊ฑฐ๋ ์ด์์์๊ฒ ๋ณด๋ด๋ ์๋ฆผ์ผ ์ ์์ต๋๋ค. ์ด๋ ๋ด๋น ์ด์์์๊ฒ ๋น์ ์์ ์ธ ๋ณ๊ฒฝ ์ฌํญ์ ์๋ฆฌ๊ธฐ ์ํด ๋์คํจ์น ์ฝ์์ ์์ฑํ ๋ ํนํ ์ ์ฉํฉ๋๋ค. ํธ๋ฆฌ๊ฑฐ๋ ํน์ ์์ค, ํน์ ๊ธฐ๊ฐ์ ํ๊ท ๊ฐ, ๋ฐ์ดํฐ ๋ถ์กฑ ๋ฑ์ ์ด๊ณผํ๊ฑฐ๋ ๊ฐ์ํ๋๋ก ์ค์ ํ ์ ์์ต๋๋ค.
์ ํธ๋ฆฌ๊ฑฐ ์์ฑ ๋ฐ ์๋ฆผ ํ์์ค ์ถ๊ฐ
์๋ฆผ์ ํ์ํ๋ ค๋ฉด ์ฐจํธ์ ํจ๊ป ๋์ผํ ํจ๋์ ํ์ํ ์ ์๋ ๋ณ๋์ ์์ ฏ์ธ "๊ฒฝ๊ณ "๊ฐ ์์ต๋๋ค.
WISE-PaaS/SaaS ์ปดํฌ์
SaaS Composer๋ 3์ฐจ์ ๋ฐ XNUMX์ฐจ์ ํ๋ก์ธ์ค ๋ค์ด์ด๊ทธ๋จ์ ์์ฑํ๊ธฐ ์ํ ํ๋ ์์ํฌ์ ๋๋ค. ๊ธฐ์กด์ ๊ตฌ์ ๊ตฌ์ฑํ์ ๋ฌ๋ฆฌ ์งํ ์ค์ธ ํ๋ก์ธ์ค์ ๋ํ ๋ณด๋ค ์ ์ตํ๊ณ ์๊ฐ์ ์ธ ๋ชจ๋ธ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ ์ฒด ์์ฐ ๋ผ์ธ๊ณผ ๊ฑด๋ฌผ์ XNUMXD๋ก ์๊ฐํํ๊ณ ์งํ ์ค์ธ ์ด๋ฒคํธ๋ฅผ XNUMXD ๋ชจ๋ธ์ ์ค์๊ฐ์ผ๋ก ํ์ํฉ๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ :
- HTML 5 Canvas์ ์น ์ธํฐํ์ด์ค. ํ๋ก๋๋ฅผ ๋ณด๊ธฐ ์ํด ์ถ๊ฐ ์ํํธ์จ์ด๋ฅผ ์ค์นํ ํ์ ์์ด ์ฐ์ํ ์ฑ๋ฅ์ ๋ฐํํฉ๋๋ค.
- 2D ๋ฐ 3D ๋ชจ๋ธ ์์ฑ. .OBJ + .MTL ํ์์ผ๋ก 3D ๋ชจ๋ธ ๊ฐ์ ธ์ค๊ธฐ
- JPEG, PNG, SVG, OBJ, MTL ์ด๋ฏธ์ง๋ฅผ ์ง์ํฉ๋๋ค. 3D ๋ชจ๋ธ์ ๊ตฌ์ถํ ๋ SVG ๋ฒกํฐ ๊ทธ๋ํฝ์ ์ง์ํฉ๋๋ค. ๊ธฐ์กด ๋ค์ด์ด๊ทธ๋จ์์ ๊ทธ๋ํฝ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
- XNUMXD ๊ฐ์ฒด ์์ ์ ๋๋ฉ์ด์ ์ ์ถ๊ฐํ๊ณ ๋ฐ์ดํฐ๋ฅผ ํ์ํฉ๋๋ค.
- ์คํฌ๋ฆฝํ ์ธ์ด ์ง์
- ๋ค๋ฅธ WISE-Paas ์ ํ, ํนํ WISE-PaaS/Dashboard์์ ํตํฉ
3D ๋ชจ๋ธ ๋์์ด๋์๋ ํ์ดํ, ๋ฐธ๋ธ, ์์ด์ด, ๋ชจํฐ, ๊ธฐ๊ณ, ๊ทธ๋ฆด ๋ฑ์ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์์ ์ค์ ๊ฐ์ฒด์ ์ฌ์ค์ ์ธ ๋ชจ๋ธ์ ๋ง๋ค๊ณ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ์์ ฏ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ค์๊ฐ์ผ๋ก ์ ๋ ฅ ์์คํ
์ํ, ๋ค์ํ ์์น์ ์ ๊ธฐ ์๋น ์์ค, ๊ณต๊ธฐ ์ํ(CO2 ์์ค, ๊ณต๊ธฐ ์ค ๋ฏธ์ธ ์
์ ์์ค ๋ฑ)๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ด๋๋ฐดํ
๊ฑด๋ฌผ์ ๋ฐ๋ชจ ๋ค์ด์ด๊ทธ๋จ.
SaaS Composer๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ๋ฐ๋ชจ ๋ค์ด์ด๊ทธ๋จ์ ๊ฑด๋ฌผ์ ๋ค์ํ ๋งค๊ฐ๋ณ์ ์ํ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
WISE-PaaS/APM
์์ฐ ์ฑ๊ณผ ๊ด๋ฆฌ ์์คํ - ๋ณด๋ค ์ ํํ ์์ธก, ์ํ ํ๊ฐ ๋ฐ ์์ฐ๋ ์ ์ด๋ฅผ ์ํด ์์ฐ ๋ผ์ธ์ ํจ์จ์ฑ์ ๋ํ ์ ์ด๋ฅผ ๊ฐํํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
WISE-PaaS/APM์๋ ์์ฐ ํ๋ก์ธ์ค ๋ถ์์ ์ํ ์๊ณ ๋ฆฌ์ฆ์ด ๋ด์ฅ๋์ด ์์ด ์ด๋ค ๊ธฐ๊ณ๊ฐ ํจ์จ์ ์ผ๋ก ์๋ํ์ง ์๋์ง ์ถ์ ํ๊ณ ์์ฐ๋, ๊ฐ๋ฅํ ๋ฌธ์ ๋ฐ ๊ธฐ์ ์ง์ ํ์์ฑ์ ์์ธกํ ์ ์์ต๋๋ค. ์๋น์ค.
WISE-PaaS/APM์ ์ฌ์ฉํ๋ฉด ์์ฐ ๋ผ์ธ์ ํจ์จ์ฑ์ ๋ชจ๋ํฐ๋งํ ์ ์์ต๋๋ค.
WISE-PaaS/EnSaaS - ์ฅ์น ์์ (์ฃ์ง์์ ํด๋ผ์ฐ๋๊น์ง)
์๋ํฌ์ธํธ๋ฅผ ํด๋ผ์ฐ๋ ์ธํ๋ผ์ ํธ๋ฆฌํ๊ฒ ํตํฉํ๊ธฐ ์ํด WISE-PaaS๋ ์๋ฒ ๋๋ ์์คํ ๋ฐ IoT ์์ ์ ์ํ ๋๊ตฌ ์ธํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
WISE-Paas/DeviceOn โ ์ผ์, ํฐ๋ฏธ๋, ์๋ฒ ๋๋ ์์คํ
๋ฑ๊ณผ ๊ฐ์ ์๋ง์ ์ต์ข
์ฅ์น๋ฅผ ๊ด๋ฆฌํ๊ณ ๊ตฌ์ฑํ๊ธฐ ์ํ ํ๋ซํผ์
๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ :
- ์ ๋กํฐ์น ํ๋ก๋น์ ๋ โ ์ต์ข ์ฅ๋น์ ์๋ ๊ตฌ์ฑ ๋ฐ ์์คํ ์ ์ถ๊ฐ
- ์ ๊ทผ ์ ํ โ ์ฅ์น ๋ณด์์ ๋ณด์ฅํ๊ณ ๋ฌด๋จ ์ก์ธ์ค๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด
- ์ ๋ฐ์ดํธ(OTA) โ ์ต์ข ์ฅ์น์ ์๋ ์ํํธ์จ์ด ๋ฐ ํ์จ์ด ์ ๋ฐ์ดํธ
- ๋ชจ๋ํฐ๋ง โ ํธ์ ์๋ฆผ, SMS ๋๋ ์ด๋ฉ์ผ์ ํตํด ์ฅ๋น ์ํ ๋ชจ๋ํฐ๋ง ๋ฐ ๋ฌธ์ ์๋ฆผ
- ๋ฐฑ์ ๋ฐ ๋ณด๊ด โ ์ฅ์น ๊ตฌ์ฑ ๋ฐ ํด๋น ๋ฐ์ดํฐ์ ๋ฐฑ์ ์์ฑ
- ์ฅ์น ๋งต ์์ฑ โ ๊ฑด๋ฌผ ํ๋ฉด๋์ ์ง๋์ ์ฅ์น ๋ฐฐ์น ๋ค์ด์ด๊ทธ๋จ์ ๊ตฌ์ฑํ๊ธฐ ์ํ ์์ฑ์
WISE-Paas/WISE-์์ด์ ํธ
WISE-Agent๋ WISE-PaaS/DeviceOn๊ณผ ์ํธ ์์ฉํ๊ธฐ ์ํด ์ต์ข
์ฅ์น์ ์ค์น๋๋ ์ํํธ์จ์ด์
๋๋ค. ๋ชจ๋ ์ฃผ์ ์ด์ ์ฒด์ ๊ฐ ์ง์๋ฉ๋๋ค. ์ปดํ์ผ๋ ํจํค์ง๋ Windows, Ubuntu, Android(RISC), OpenWRT(RISC)์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํด๋ผ์ฐ๋ ํ๋ซํผ๊ณผ์ ์ํธ ์์ฉ์ MQTT(s) ํ๋กํ ์ฝ์ ํตํด ๋ฐ์ํฉ๋๋ค.
[์ฌ๋ก] ์ค๋งํธ์ญ ๊ฐ๋ฐ์ WISE-PaaS ํ๋ซํผ ํ์ฉ
SaierNico ํ์ฌ๋ ํด์ด ํ์ฌ๋ฅผ ์ํ ์ง๋ฅํ ์์คํ ์ ๊ฐ๋ฐํ๊ณ ์ ๋ฐ์ฉ ์ฅ๋น๋ฅผ ๊ฐ๋ฐํฉ๋๋ค. SaierNico๋ Wise-PaaS ํ๋ซํผ์ ์ฌ์ฉํ์ฌ ์ ๋ฐ์ ์ค์๊ฐ์ผ๋ก ์๊ฒฉ ๋ชจ๋ํฐ๋งํ๊ณ ์ฌ๊ณ ์ ๋์ํ ์ ์๋ ์์คํ ์ ๊ฐ๋ฐํ์ต๋๋ค.
์ผ์๋ ์์ง ์๋, ์๋ ฅ, ์์ด์ปจ ์์คํ
์ํ, ํํ ๋ฐ ๊ธฐํ ์ฌํญ ๋ฑ ์ ๋ฐ์ ๋ค์ํ ๊ตฌ์ฑ ์์๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์์งํฉ๋๋ค. RabbitMQ ๋ธ๋ก์ปค๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋๋ฐ, ์ด๋ ์ ๋ฐ๊ณผ์ ํต์ ์ด ๋ถ์์ ํ๊ธฐ ๋๋ฌธ์ ๋ฉ์์ง ์ ๋ฌ์ ์ ๋ขฐ์ฑ์ ๋์
๋๋ค. ๋ฐ์ดํฐ๋ WebAccess/SCADA ์์คํ
์ผ๋ก ํ๋ฌ ๋ค์ด๊ฐ๋๋ค.
์์คํ ๊ตฌ์กฐ
์ ๋ฐ ๊ตฌ์ฑ ์์์ ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋งํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
ํ๊ฒฌ์ผํฐ์ ๋ฐ์ดํฐ ์๊ฐํ๋ ๋ค์์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ๋ฉ๋๋ค.
์ ๋ฐ ์์คํ
์ ์ต์ข
์ฅ์น ํ์จ์ด ์
๋ฐ์ดํธ๋ ๋ค์์ ์ฌ์ฉํ์ฌ ์ํ๋ฉ๋๋ค.
์ถ์ฒ : habr.com