2019๋
4์์ ์ฐ๋ฆฌ๋ ํ๋ก๋์
ํ๊ฒฝ์์ ์ปจํ
์ด๋ ์ ํ๋ฆฌ์ผ์ด์
๊ด๋ฆฌ๋ฅผ ๋จ์ํํ๊ธฐ ์ํด ์ฌ์ค๊ณํ ์ฐจ์ธ๋ Kubernetes ํ๋ซํผ์ธ Red Hat OpenShift XNUMX๋ฅผ ์ถ์ํ๋ค๋ ์ฌ์ค์ ๊ธฐ์ตํด ๋ณด๊ฒ ์ต๋๋ค.
์ด ์๋ฃจ์
์ ํ์ด๋ธ๋ฆฌ๋ ํด๋ผ์ฐ๋์์ ์๋ ์
๋ฐ์ดํธ ๋ฐ ๋ผ์ดํ์ฌ์ดํด ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์์ฒด ๊ด๋ฆฌํ ํ๋ซํผ์ผ๋ก ์ ์๋์์ผ๋ฉฐ ๊ฒ์ฆ๋ Red Hat Enterprise Linux ๋ฐ Red Hat Enterprise Linux CoreOS๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ต๋๋ค. ๋ฒ์ 4.2์์๋ ํ๋ซํผ์ ๋์ฑ ๊ฐ๋ฐ์ ์นํ์ ์ผ๋ก ๋ง๋๋ ๋ฐ ์ค์ ์ ๋์์ต๋๋ค. ๋ํ OpenShift 3์์ 4๋ก์ ๋ง์ด๊ทธ๋ ์ด์
๋๊ตฌ๋ฅผ ์ ๊ณตํ๊ณ ์คํ๋ผ์ธ ๊ตฌ์ฑ์ ๋ํ ์ง์์ ๊ตฌํํ์ฌ ํด๋ฌ์คํฐ ๊ด๋ฆฌ์๋ฅผ ์ํ ํ๋ซํผ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
๊ด๋ฆฌ ์์
์ ๋จ์ํํ์ต๋๋ค.
์๋๋ ์ด๋์ ์์ต๋๊น?
๋ฒ์ 4.2๋ ๊ฐ๋ฐ์ ์์ ์ ์ต์ ํ๋ ์๋ก์ด OpenShift ๊ด๋ฆฌ ์ฝ์ ๋ชจ๋๋ ๋ฌผ๋ก ์ปจํ ์ด๋ ๊ตฌ์ถ, CI/CD ํ์ดํ๋ผ์ธ ๊ตฌ์ฑ, ์๋ฒ๋ฆฌ์ค ์์คํ ๊ตฌํ์ ์ํ ์๋ก์ด ๋๊ตฌ ๋ฐ ํ๋ฌ๊ทธ์ธ์ ์ ๊ณตํ์ฌ Kubernetes ์์ ์ ํฌ๊ฒ ๋จ์ํํฉ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ ํ๋ก๊ทธ๋๋จธ๊ฐ Kubernetes์ ํน์ฑ์ ๋ฐฉํด๋ฐ์ง ์๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋ ์์ฑ์ด๋ผ๋ ์ฃผ์ ์์ ์ ๋ ์ ํํ๊ฒ ์ง์คํ ์ ์๋๋ก ๋์์ค๋๋ค.
๊ฐ๋ฐ์ ์ฝ์์์ ์ ํ๋ฆฌ์ผ์ด์
ํ ํด๋ก์ง๋ฅผ ๋ด
๋๋ค.
OpenShift ์ฝ์์ ์๋ก์ด ๊ฐ๋ฐ์ ๋ชจ๋
OpenShift 4.2์ ์๋ก์ด ๊ฐ๋ฐ์ ๋๊ตฌ:
๊ฐ๋ฐ์ ๋ชจ๋ ์น ์ฝ์์ ํ์ํ ์ ๋ณด์ ๊ตฌ์ฑ๋ง ํ์ํ์ฌ ๊ฐ๋ฐ์๊ฐ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ง์คํ ์ ์๋๋ก ๋์์ค๋๋ค. ํ ํด๋ก์ง ๋ณด๊ธฐ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์กฐ๋ฆฝ์ ์ํ ํฅ์๋ UI๋ฅผ ํตํด ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํด๋ฌ์คํฐ ๋ฆฌ์์ค๋ฅผ ๋ ์ฝ๊ฒ ์์ฑ, ๋ฐฐํฌ ๋ฐ ์๊ฐํํ ์ ์์ต๋๋ค.- ํดํท
ODO โ OpenShift ํ๋ซํผ์์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋จ์ํํ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ ํน์ ๋ช ๋ น์ค ์ธํฐํ์ด์ค์ ๋๋ค. Git ํธ์์ ๊ฐ์ ์ํธ ์์ฉ์ ๊ตฌ์ฑํจ์ผ๋ก์จ ์ด CLI๋ ๊ฐ๋ฐ์๊ฐ Kubernetes์ ๋ณต์ก์ฑ์ ํ๊ตฌํ์ง ์๊ณ ๋ OpenShift ํ๋ซํผ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ์์ฑํ ์ ์๋๋ก ๋์์ค๋๋ค. Red Hat OpenShift ์ปค๋ฅํฐ Microsoft Visual Studio Code์ ๊ฒฝ์ฐ JetBrains IDE(IntelliJ ํฌํจ) ๋ฐ Eclipse Desktop IDE๋ ์ฌ์ฉ๋๋ ๋๊ตฌ์์ ์์ฌ์ด ํตํฉ์ ์ ๊ณตํ๊ณ ๊ฐ๋ฐ์์๊ฒ ์น์ํ IDE ํ๊ฒฝ์์ OpenShift์ฉ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ, ๋น๋, ๋๋ฒ๊ทธ ๋ฐ ๋ฐฐํฌํ ์ ์๋๋ก ํด์ค๋๋ค.- Microsoft Azure DevOps์ฉ Red Hat OpenShift ๋ฐฐํฌ ํ์ฅ. ์ด DevOps ๋๊ตฌ ํคํธ ์ฌ์ฉ์์๊ฒ Azure Red Hat OpenShift ๋๋ Microsoft Azure DevOps ํ๋ซํผ์ ๋ค๋ฅธ OpenShift ํด๋ฌ์คํฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
Visual Studio์ฉ ํ๋ฌ๊ทธ์ธ
๋ ธํธ๋ถ์ ์ ์ฒด OpenShift
์๋น์ค ๋ฉ์
์ฐ๋ฆฌ์ ์๋ฃจ์
OpenShift Service Mesh ๋ด์์ Kiali๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ ํธ๋ํฝ์ ๊ณ ๊ธ ์๊ฐํ
์๋ฒ๋ฆฌ์ค ์ปดํจํ
์ฐ๋ฆฌ์ ๋ค๋ฅธ ์๋ฃจ์
OpenShift ์ฝ์์์ ์๋ฒ๋ฆฌ์ค ๋ฐฐํฌ ์ค์
๊ฐ๋ฐ์ ์ฝ์๊ณผ์ ํตํฉ ์ธ์๋ ์ ๋ฒ์ ์ OpenShift์๋ ์๋ฒ๋ฆฌ์ค ์ธก๋ฉด์์ ๋ค๋ฅธ ๊ฐ์ ์ฌํญ์ด ์์ต๋๋ค. ํนํ, ์ด๊ฒ์ด ๋ฐ๋ก kn์ ๋๋ค. ํธ๋ฆฌํ๊ณ ์ง๊ด์ ์ธ ์กฐ์์ ์ ๊ณตํ๋ Knative ๋ช ๋ น์ค ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ๊ฐ์ฒด๋ฅผ ๊ทธ๋ฃนํํ ์ ์์ต๋๋ค. ์ฝ๋ ๋ฐ ๊ตฌ์ฑ์ ์ค๋ ์ท์ ์ฐ๊ณ ๋คํธ์ํฌ ์๋ํฌ์ธํธ๋ฅผ ํน์ ๋ฒ์ ์ด๋ ์๋น์ค์ ๋งคํํ๋ ๊ธฐ๋ฅ๋ ์ ๊ณตํฉ๋๋ค. OpenShift Serverless ์ด์์๋ฅผ ํตํด ๊ธฐ์ ํ๋ฆฌ๋ทฐ์์ ์ ๊ณต๋๋ ์ด๋ฌํ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ์๊ฐ ์๋ฒ๋ฆฌ์ค ์ํคํ ์ฒ์ ์ต์ํด์ง๊ณ ํน์ ์ธํ๋ผ์ ์ฝ๋งค์ด์ง ์๊ณ ํ์ด๋ธ๋ฆฌ๋ ํด๋ผ์ฐ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ ์ ์๋ ์ ์ฐ์ฑ์ ๊ฐ๋๋ก ๋์์ค๋๋ค.
Cloud CI/CD ํ์ดํ๋ผ์ธ
CI/CD(์ง์์ ์ธ ํตํฉ ๋ฐ ์ ๊ณต)๋ ์ค๋๋ ์ํํธ์จ์ด ๋ฐฐํฌ์ ์๋์ ์์ ์ฑ์ ๋์ด๋ ํต์ฌ ๊ฐ๋ฐ ๋ฐฉ์์
๋๋ค. ์ข์ CI/CD ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ ํ์ด ์ฑ๊ณต์ ์ธ ๋ฏผ์ฒฉํ ๊ฐ๋ฐ์ ์ค์ํ ํผ๋๋ฐฑ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ ์๋ํํ ์ ์์ต๋๋ค. OpenShift์์๋ ๊ธฐ์กด Jenkins ๋๋ ์๋ก์ด ์๋ฃจ์
์ ํดํท์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ค๋๋ Jenkins๋ ์ฌ์ค์์ ํ์ค์ด์ง๋ง ์ฐ๋ฆฌ๋ ์ปจํ ์ด๋ CI/CD์ ๋ฏธ๋๋ฅผ Tekton ์คํ ์์ค ์ํํธ์จ์ด ํ๋ก์ ํธ์ ์ฐ๊ด์ํต๋๋ค. ๋ฐ๋ผ์ OpenShift Pipelines๋ ์ด ํ๋ก์ ํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํน๋ณํ ๊ตฌ์ถ๋์์ผ๋ฉฐ ์ฝ๋ํ ํ์ดํ๋ผ์ธ("์ฝ๋ํ ํ์ดํ๋ผ์ธ") ๋ฐ GitOps์ ๊ฐ์ ํด๋ผ์ฐ๋ ์๋ฃจ์ ์ ๋ํ ์ผ๋ฐ์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ๋ ์ ์ง์ํฉ๋๋ค. OpenShift Pipelines์์๋ ๊ฐ ๋จ๊ณ๊ฐ ์์ฒด ์ปจํ ์ด๋์์ ์คํ๋๋ฏ๋ก ํด๋น ๋จ๊ณ๊ฐ ์คํ๋๋ ๋์์๋ง ๋ฆฌ์์ค๊ฐ ์๋น๋๋ฏ๋ก ๊ฐ๋ฐ์๋ ์ค์ CI/CD ์๋ฒ์ ์์กดํ์ง ์๊ณ ๋ ๋๋ฆฌ๋ฒ๋ฆฌ ํ์ดํ๋ผ์ธ, ํ๋ฌ๊ทธ์ธ ๋ฐ ์ก์ธ์ค ์ ์ด๋ฅผ ์์ ํ ์ ์ดํ ์ ์์ต๋๋ค.
OpenShift Pipelines๋ ์์ง Developer Preview ์ํ์ด๋ฉฐ ๋ชจ๋ OpenShift 4 ํด๋ฌ์คํฐ์์ ์ฌ์ฉํ ์ ์๋ ํด๋น ์ฐ์ฐ์๋ก ์ ๊ณต๋ฉ๋๋ค. Jenkins๋ OpenShift 3 ๋ฐ 4 ๋ฒ์ ๋ชจ๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Red Hat OpenShift ํ์ดํ๋ผ์ธ
ํ์ด๋ธ๋ฆฌ๋ ํด๋ผ์ฐ๋์์ ์ปจํ ์ด๋ ๊ด๋ฆฌ
OpenShift์ ์๋ ์ค์น ๋ฐ ์ ๋ฐ์ดํธ๋ ์ฌ์ฉ์ ๊ฒฝํ ์ธก๋ฉด์์ ํ์ด๋ธ๋ฆฌ๋ ํด๋ผ์ฐ๋๋ฅผ ํ์ค ํด๋ผ์ฐ๋์ ์ต๋ํ ๊ฐ๊น๊ฒ ๋ง๋ญ๋๋ค. OpenShift 4.2๋ ์ด์ ์ ์ฃผ์ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋ ํ๋ซํผ, ํ๋ผ์ด๋น ํด๋ผ์ฐ๋, ๊ฐ์ํ ํ๋ซํผ ๋ฐ ๋ฒ ์ด๋ฉํ ์๋ฒ์์ ์ฌ์ฉํ ์ ์์์ง๋ง ๋ฒ์ XNUMX์์๋ ์ด ๋ชฉ๋ก์ Microsoft Azure ๋ฐ Google Cloud Platform๊ณผ OpenStack ํ๋ผ์ด๋น ํด๋ผ์ฐ๋๋ผ๋ ๋ ๊ฐ์ง ์๋ก์ด ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋ ํ๋ซํผ์ด ์ถ๊ฐ๋์์ต๋๋ค.
OpenShift 4.2 ์ค์น ํ๋ก๊ทธ๋จ์ ๋ค์ํ ๋์ ํ๊ฒฝ์ ๋ง๊ฒ ๊ฐ์ ๋์์ผ๋ฉฐ ์ฒ์์ผ๋ก ๊ฒฉ๋ฆฌ๋(์ธํฐ๋ท์ ์ฐ๊ฒฐ๋์ง ์์) ๊ตฌ์ฑ์ผ๋ก ์์ ํ๋๋ก ๊ต์ก๋์์ต๋๋ค. ์์ฒด CA ๋ฒ๋ค์ ์ ๊ณตํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์๋๋ฐ์ค ์ค์น ๋ฐ ํ์ ํ๋ก์ ๋ชจ๋๋ ๊ท์ ํ์ค ๋ฐ ๋ด๋ถ ๋ณด์ ํ๋กํ ์ฝ์ ์ค์ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๋ ๋ฆฝ ์คํํ ์ค์น ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ธํฐ๋ท์ ์ก์ธ์คํ ์ ์๋ ์ง์ญ์ด๋ ์๊ฒฉํ ์ด๋ฏธ์ง ํ ์คํธ ์ ์ฑ ์ด ์ ์ฉ๋๋ ํ๊ฒฝ์์ ํญ์ ์ต์ ๋ฒ์ ์ OpenShift Container Platform์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ํ Red Hat Enterprise Linux์ ๊ฒฝ๋ ๋ฒ์ ์ธ Red Hat Enterprise Linux CoreOS๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ฒด OpenShift ์คํ์ ๋ฐฐํฌํ๋ฉด ์ค์น ํ XNUMX์๊ฐ ์ด๋ด์ ํด๋ผ์ฐ๋๋ฅผ ์ค๋นํ ์ ์์ต๋๋ค.
Red Hat OpenShift๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋ผ์ฐ๋์ ์จํ๋ ๋ฏธ์ค ์ธํ๋ผ์์ ์ปจํ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑ, ๋ฐฐํฌ, ๊ด๋ฆฌํ๋ ํ๋ก์ธ์ค๋ฅผ ํตํฉํ ์ ์์ต๋๋ค. ๋ณด๋ค ์ฝ๊ณ ์๋ํ๋๊ณ ๋น ๋ฅธ ์ค์น๋ฅผ ํตํด ์ด์ AWS, Azure, OpenStack ๋ฐ GCP์์ OpenShift 4.2๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์กฐ์ง์ ํ์ด๋ธ๋ฆฌ๋ ํด๋ผ์ฐ๋์์ Kubernetes ํ๋ซํผ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
OpenShift 3์์ OpenShift 4๋ก ์ฝ๊ฒ ๋ง์ด๊ทธ๋ ์ด์
์๋ก์ด ์ํฌ๋ก๋ ๋ง์ด๊ทธ๋ ์ด์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ด์ ๋ฒ์ ์ ํ๋ซํผ์์ OpenShift 4.2๋ก ๋ ์ฝ๊ฒ ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์์ต๋๋ค. ์ด์ ๊ธฐ์กด ํด๋ฌ์คํฐ์์ ์ ํด๋ฌ์คํฐ๋ก ๋ก๋๋ฅผ ์ ์กํ๋ ์์ ์ด ํจ์ฌ ๋น ๋ฅด๊ณ ์ฌ์์ก์ผ๋ฉฐ ์๋ ์์ ๋ ์ต์ํ๋์์ต๋๋ค. ํด๋ฌ์คํฐ ๊ด๋ฆฌ์๋ ์์ค OpenShift 3.x ํด๋ฌ์คํฐ๋ฅผ ์ ํํ๊ณ ์ฌ๊ธฐ์ ์ํ๋ ํ๋ก์ ํธ(๋๋ ๋ค์์คํ์ด์ค)๋ฅผ ํ์ํ ๋ค์ ํด๋น ์๊ตฌ ๋ณผ๋ฅจ์ผ๋ก ์ํํ ์์ ์ ์ง์ ํ๋ฉด ๋ฉ๋๋ค. ์ด๋ฅผ ๋์ OpenShift 4.x ํด๋ฌ์คํฐ์ ๋ณต์ฌํ๊ฑฐ๋ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ฉด ๋ฉ๋๋ค. . ๊ทธ๋ฌ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ด๋ฆฌ์๊ฐ ์ข ๋ฃํ ๋๊น์ง ์๋ ํด๋ฌ์คํฐ์์ ๊ณ์ ์คํ๋ฉ๋๋ค.
OpenShift 4.2๋ ๋ค์ํ ๋ง์ด๊ทธ๋ ์ด์ ์๋๋ฆฌ์ค๋ฅผ ์ง์ํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ Velero ํ๋ก์ ํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ค๊ฐ ์ ์ฅ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์ฌ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด ์๋ ํด๋ฌ์คํฐ๋ Gluster๋ฅผ ์ฌ์ฉํ๊ณ ์ ํด๋ฌ์คํฐ๋ Ceph๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด ์ต์ ์ ์ฌ์ฉํ๋ฉด ์คํ ๋ฆฌ์ง ์์คํ ๋ณ๊ฒฝ์ ๋ฐ๋ผ ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์์ต๋๋ค.
- ๋ฐ์ดํฐ๋ ํ์ฌ ์ ์ฅ์์ ๋จ์ ์์ง๋ง ์ ํด๋ฌ์คํฐ์ ์ฐ๊ฒฐ๋ฉ๋๋ค(์๊ตฌ ๋ณผ๋ฅจ ์ ํ).
- Restic์ ์ฌ์ฉํ์ฌ ํ์ผ ์์คํ ๋ณต์ฌ
์ฒซ๋ ๋ฐค์ ๊ถ๋ฆฌ
์ข
์ข
์ฌ์ฉ์๋ ์ ๋ฆด๋ฆฌ์ค๊ฐ ์ถ์๋๊ธฐ ์ค๋ ์ ์ ๊ณํ๋ OpenShift ํ์ ์ ์ํํด ๋ณผ ์ ์๊ธฐ๋ฅผ ์ํฉ๋๋ค.
Nightly ๋น๋๋ฅผ ํตํด ๊ณ ๊ฐ๊ณผ ํํธ๋๋ ๊ฐ๋ฐ ์ด๊ธฐ์ ์๋ก์ด ๊ธฐ๋ฅ์ ๋ฏธ๋ฆฌ ๋ณผ ์ ์์ผ๋ฉฐ, ์ด๋ ISV ๊ฐ๋ฐ์์ ์์ฒด ์๋ฃจ์ ๊ณผ OpenShift์ ๋ฐฐํฌ ๊ณํ ๋๋ ํตํฉ์ ์ ์ฉํ ์ ์์ต๋๋ค.
OKD ์ปค๋ฎค๋ํฐ ํ์์ ์ํ ์ฐธ๊ณ ์ฌํญ
๊ฐ๋ฐ ์ปค๋ฎค๋ํฐ์์ ์์ฑ๋๊ณ Red Hat OpenShift์ ๊ธฐ๋ฐ์ด ๋๋ ์คํ์์ค Kubernetes ๋ฐฐํฌํ์ธ OKD 4.0์ ๋ํ ์์
์ด ์์๋์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ชจ๋ ์ฌ๋์ด ํ์ฌ ์ํ์ ๋ํ ํ๊ฐ๋ฅผ ํ๋๋ก ์ด๋ํฉ๋๋ค.
์ฐธ๊ณ :
๋ณธ ์ถํ๋ฌผ์ ์ฌ์ฉ๋ "ํํธ๋์ญ"์ด๋ผ๋ ๋จ์ด๋ Red Hat, Inc. ๊ฐ์ ๋ฒ์ ํํธ๋์ญ์ด๋ ๋ค๋ฅธ ํํ์ ๋ฒ์ ๊ด๊ณ๋ฅผ ์๋ฏธํ์ง ์์ต๋๋ค. ๊ธฐํ ๋ฒ์ธ.
์ถ์ฒ : habr.com