์๋
ํ์ธ์. ์ด์ ๊ธฐ์ฌ์์ ELK Stack์ ์์
์ ๋ํด ์์๋ดค์ต๋๋ค. ์ด์ ์ ๋ณด ๋ณด์ ์ ๋ฌธ๊ฐ๊ฐ ์ด๋ฌํ ์์คํ
์ ์ฌ์ฉํ์ฌ ์คํํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ ๋ํด ๋
ผ์ํด ๋ณด๊ฒ ์ต๋๋ค. Elasticsearch์ ์
๋ ฅํ ์ ์๊ณ ์
๋ ฅํด์ผ ํ๋ ๋ก๊ทธ๋ ๋ฌด์์
๋๊น? ๋์๋ณด๋๋ฅผ ์ค์ ํ๋ฉด ์ด๋ค ํต๊ณ๋ฅผ ์ป์ ์ ์๋์ง, ์ด๋ก ์ธํด ์ด์ต์ด ์๋์ง ์๊ฐํด ๋ด
์๋ค. ELK ์คํ์ ์ฌ์ฉํ์ฌ ์ ๋ณด ๋ณด์ ํ๋ก์ธ์ค์ ์๋ํ๋ฅผ ์ด๋ป๊ฒ ๊ตฌํํ ์ ์์ต๋๊น? ์์คํ
์ ์ํคํ
์ฒ๋ฅผ ๊ทธ๋ ค ๋ด
์๋ค. ์ ์ฒด์ ์ผ๋ก ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๊ฒ์ ๋งค์ฐ ํฌ๊ณ ์ด๋ ค์ด ์์
์ด๋ฏ๋ก ์๋ฃจ์
์๋ TS Total Sight๋ผ๋ ๋ณ๋์ ์ด๋ฆ์ด ์ง์ ๋์์ต๋๋ค.
ํ์ฌ ์ ๋ณด ๋ณด์ ์ฌ๊ณ ๋ฅผ ํ๋์ ๋
ผ๋ฆฌ์ ์ธ ์ฅ์์ ํตํฉํ๊ณ ๋ถ์ํ๋ ์๋ฃจ์
์ด ๋น ๋ฅด๊ฒ ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์์ผ๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ ์ ๋ฌธ๊ฐ๋ ์กฐ์ง์ ์ ๋ณด ๋ณด์ ์ํ๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํ ํต๊ณ์ ์กฐ์น๋ฅผ ๋ฐ์ ์ ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ELK ์คํ์ ์ฌ์ฉํ์ฌ ์ด ์์
์ ์ค์ ํ์ผ๋ฉฐ ๊ฒฐ๊ณผ์ ์ผ๋ก ์ฃผ์ ๊ธฐ๋ฅ์ 4๊ฐ ์น์
์ผ๋ก ๋๋์์ต๋๋ค.
- ํต๊ณ ๋ฐ ์๊ฐํ;
- ์ ๋ณด ๋ณด์ ์ฌ๊ณ ํ์ง
- ์ฌ๊ณ ์ฐ์ ์์;
- ์ ๋ณด ๋ณด์ ํ๋ก์ธ์ค ์๋ํ.
๋ค์์ผ๋ก๋ ๊ฐ๊ฐ์ ๋ํด ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ ๋ณด๋ณด์ ์ฌ๊ณ ํ์ง
์ฐ๋ฆฌ์ ๊ฒฝ์ฐ Elasticsearch๋ฅผ ์ฌ์ฉํ๋ ์ฃผ์ ์์ ์ ์ ๋ณด ๋ณด์ ์ฌ๊ณ ๋ง ์์งํ๋ ๊ฒ์ ๋๋ค. ์ต์ํ ์ผ๋ถ ๋ก๊ทธ ์ ์ก ๋ชจ๋๋ฅผ ์ง์ํ๋ ๊ฒฝ์ฐ ๋ชจ๋ ๋ณด์ ์๋จ์์ ์ ๋ณด ๋ณด์ ์ฌ๊ณ ๋ฅผ ์์งํ ์ ์์ต๋๋ค. ํ์ค์ syslog ๋๋ scp๋ฅผ ํ์ผ์ ์ ์ฅํ๋ ๊ฒ์ ๋๋ค.
๋ก๊ทธ ์ ๋ฌ์ ๊ตฌ์ฑํด์ผ ํ๋ ๋ณด์ ๋๊ตฌ ๋ฑ์ ํ์ค ์๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
- ๋ชจ๋ NGFW ๋๊ตฌ(Check Point, Fortinet)
- ๋ชจ๋ ์ทจ์ฝ์ ์ค์บ๋(PT Scanner, OpenVas)
- ์น ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฉํ๋ฒฝ(PT AF);
- ๋ทํ๋ก์ฐ ๋ถ์๊ธฐ(Flowmon, Cisco StealthWatch);
- AD ์๋ฒ.
Logstash์์ ๋ก๊ทธ ๋ฐ ๊ตฌ์ฑ ํ์ผ ์ ์ก์ ๊ตฌ์ฑํ ํ์๋ ๋ค์ํ ๋ณด์ ๋๊ตฌ์์ ๋ฐ์ํ๋ ์ฌ๊ฑด๊ณผ ์ํธ ์ฐ๊ด์ํค๊ณ ๋น๊ตํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํด ํน์ ์ฅ์น์ ๊ด๋ จ๋ ๋ชจ๋ ์ธ์๋ํธ๋ฅผ ์ ์ฅํ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํธ๋ฆฌํฉ๋๋ค. ์ฆ, ํ๋์ ์งํ๋ ํ๋์ ๊ธฐ๊ธฐ์ ๋ํ ๋ชจ๋ ์ฌ๊ฑด์ ์๋ฏธํฉ๋๋ค. ์ด ๋ฐฐํฌ๋ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํ๋ ์ ์์ต๋๋ค.
์ฒซ ๋ฒ์งธ ์ค์ ์ด๋ Logstash ๊ตฌ์ฑ์ ๊ตฌ์ฑํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ ค๋ฉด ํน์ ํ๋์ ๋ํ ๋ก๊ทธ๋ฅผ ๋ค๋ฅธ ์ ํ์ ๋ณ๋ ๋จ์๋ก ๋ณต์ ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ผ๋ก๋ ์ด ์ ํ์ ์ฌ์ฉํ์ธ์. ์ด ์์์๋ ๋ก๊ทธ๊ฐ Check Point ๋ฐฉํ๋ฒฝ์ IPS ๋ธ๋ ์ด๋์์ ๋ณต์ ๋ฉ๋๋ค.
filter {
if [product] == "SmartDefense" {
clone {
clones => ["CloneSmartDefense"]
add_field => {"system" => "checkpoint"}
}
}
}
์๋ฅผ ๋ค์ด ๋์ IP ๊ณต๊ฒฉ ์๋ช ๊ณผ ๊ฐ์ ๋ก๊ทธ ํ๋์ ๋ฐ๋ผ ์ด๋ฌํ ์ด๋ฒคํธ๋ฅผ ๋ณ๋์ ์ธ๋ฑ์ค์ ์ ์ฅํฉ๋๋ค. ๋น์ทํ ๊ตฌ์ฑ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
output {
if [type] == "CloneSmartDefense"{
{
elasticsearch {
hosts => [",<IP_address_elasticsearch>:9200"]
index => "smartdefense-%{dst}"
user => "admin"
password => "password"
}
}
}
์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋ชจ๋ ์ธ์๋ํธ๋ฅผ IP ์ฃผ์ ๋๋ ์์คํ ์ ๋๋ฉ์ธ ์ด๋ฆ ๋ฑ์ ์ธ๋ฑ์ค์ ์ ์ฅํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ์๋ ์ธ๋ฑ์ค์ ์ ์ฅํฉ๋๋ค. "smartdefense-%{dst}", ์๋ช ๋์์ IP ์ฃผ์๋ก.
๊ทธ๋ฌ๋ ์ ํ๋ง๋ค ๋ก๊ทธ ํ๋๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ํผ๋๊ณผ ๋ถํ์ํ ๋ฉ๋ชจ๋ฆฌ ์๋น๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์์ Logstash ๊ตฌ์ฑ ์ค์ ์ ํ๋๋ฅผ ์ฌ์ ์ค๊ณ๋ ํ๋๋ก ์กฐ์ฌ์ค๋ฝ๊ฒ ๊ต์ฒดํด์ผ ํ๋ฉฐ ์ด๋ ๋ชจ๋ ์ ํ์ ์ฌ๊ณ ์ ๋ํด ๋์ผํ๋ฉฐ ์ด๋ ค์ด ์์ ์ด๊ธฐ๋ ํฉ๋๋ค.
๋ ๋ฒ์งธ ๊ตฌํ ์ต์ - ํ๋ ฅ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค์๊ฐ์ผ๋ก ์ก์ธ์คํ๊ณ , ํ์ํ ์ธ์๋ํธ๋ฅผ ๊บผ๋ด์ด ์ ์ธ๋ฑ์ค์ ์ ์ฅํ๋ ์คํฌ๋ฆฝํธ ๋๋ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ค์ด ์์ ์ด์ง๋ง ์ํ๋ ๋๋ก ๋ก๊ทธ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ๋ณด์ ์ฅ๋น์ ์ฌ๊ณ ์ ์ง์ ์ ์ผ๋ก ์ฐ๊ด๋ฉ๋๋ค. ์ด ์ต์ ์ ์ฌ์ฉํ๋ฉด ์ต๋ํ์ ์ ์ฐ์ฑ์ผ๋ก ๊ทํ์ ์ฌ๋ก์ ๊ฐ์ฅ ์ ์ฉํ๋๋ก ๋ก๊ทธ ์์ ์ ๊ตฌ์ฑํ ์ ์์ง๋ง ์ฌ๊ธฐ์๋ ์ด๋ฅผ ๊ตฌํํ ์ ์๋ ์ ๋ฌธ๊ฐ๋ฅผ ์ฐพ๋ ๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฌผ๋ก ๊ฐ์ฅ ์ค์ํ ์ง๋ฌธ์, ๊ทธ๋ฆฌ๊ณ ๋ฌด์์ ์ฐ๊ด์ํค๊ณ ํ์งํ ์ ์๋์??
์ฌ๊ธฐ์๋ ์ฌ๋ฌ ๊ฐ์ง ์ต์ ์ด ์์ ์ ์์ผ๋ฉฐ ์ธํ๋ผ์์ ์ฌ์ฉ๋๋ ๋ณด์ ๋๊ตฌ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ๋ช ๊ฐ์ง ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ด ๊ด์ ์์๋ NGFW ์๋ฃจ์ ๊ณผ ์ทจ์ฝ์ ์ค์บ๋๋ฅผ ๋ณด์ ํ ์ฌ๋๋ค์๊ฒ ๊ฐ์ฅ ๋ถ๋ช ํ๊ณ ํฅ๋ฏธ๋ก์ด ์ต์ ์ ๋๋ค. IPS ๋ก๊ทธ์ ์ทจ์ฝ์ ๊ฒ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋น๊ตํ ๊ฒ์ ๋๋ค. IPS ์์คํ ์ ์ํด ๊ณต๊ฒฉ์ด ๊ฐ์ง(์ฐจ๋จ๋์ง ์์)๋๊ณ ๊ฒ์ฌ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ์ต์ข ์์คํ ์์ ์ด ์ทจ์ฝ์ ์ด ํด๊ฒฐ๋์ง ์์ ๊ฒฝ์ฐ ํด๋น ์ทจ์ฝ์ ์ด ์ ์ฉ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ผ๋ฏ๋ก ๊ณ ๋ฐํ ํ์๊ฐ ์์ต๋๋ค. .
- ํ ์ปดํจํฐ์์ ๋ค๋ฅธ ์ฅ์๋ก ๋ก๊ทธ์ธ์ ๋ง์ด ์๋ํ๋ฉด ์ ์์ ์ธ ํ๋์ ์์งํ ์ ์์ต๋๋ค.
- ์ ์ฌ์ ์ผ๋ก ์ํํ ์๋ง์ ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ์ฌ ์ฌ์ฉ์๊ฐ ๋ฐ์ด๋ฌ์ค ํ์ผ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
ํต๊ณ ๋ฐ ์๊ฐํ
ELK Stack์ด ํ์ํ ๊ฐ์ฅ ๋ถ๋ช
ํ๊ณ ์ดํดํ๊ธฐ ์ฌ์ด ๊ฒ์ ๋ก๊ทธ ์ ์ฅ ๋ฐ ์๊ฐํ์
๋๋ค.
์ :
- ๊ฐ์ฅ ์ค์ํ ์ด๋ฒคํธ๊ฐ ํฌํจ๋ ์ํ ์๋ฐฉ ์ด๋ฒคํธ ๋์๋ณด๋์ ๋๋ค. ์ฌ๊ธฐ์๋ ์ด๋ค IPS ์๋ช ์ด ๊ฐ์ง๋์๋์ง, ์ง๋ฆฌ์ ์ผ๋ก ์ด๋์์ ์๋์ง๋ฅผ ๋ฐ์ํ ์ ์์ต๋๋ค.
- ์ ๋ณด๊ฐ ์ ์ถ๋ ์ ์๋ ๊ฐ์ฅ ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์ ๋ํ ๋์๋ณด๋์ ๋๋ค.
- ๋ชจ๋ ๋ณด์ ์ค์บ๋์์ ๊ฒฐ๊ณผ๋ฅผ ์ค์บํ์ธ์.
- ์ฌ์ฉ์๋ณ Active Directory ๋ก๊ทธ์ ๋๋ค.
- VPN ์ฐ๊ฒฐ ๋์๋ณด๋.
์ด๋ฐ ๊ฒฝ์ฐ ๋์๋ณด๋๋ฅผ ๋ช ์ด ๊ฐ๊ฒฉ์ผ๋ก ์ ๋ฐ์ดํธํ๋๋ก ๊ตฌ์ฑํ๋ฉด ์ด๋ฒคํธ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋ชจ๋ํฐ๋งํ๋ ๋งค์ฐ ํธ๋ฆฌํ ์์คํ ์ ์ป์ ์ ์์ผ๋ฉฐ, ๋์๋ณด๋๋ฅผ ๋ฐฐ์นํ๋ฉด ์ ๋ณด ๋ณด์ ์ฌ๊ณ ์ ์ต๋ํ ๋น ๋ฅด๊ฒ ๋์ํ ์ ์์ต๋๋ค. ๋ณ๋์ ํ๋ฉด.
์ฌ๊ณ ์ฐ์ ์์
๋๊ท๋ชจ ์ธํ๋ผ ์กฐ๊ฑด์์๋ ์ฌ๊ณ ์๊ฐ ๊ท๋ชจ๋ฅผ ๋ฒ์ด๋ ์ ์์ผ๋ฉฐ ์ ๋ฌธ๊ฐ๊ฐ ๋ชจ๋ ์ฌ๊ณ ๋ฅผ ์ ์์ ์ฒ๋ฆฌํ ์๊ฐ์ด ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ฐ์ ํฐ ์ํ์ด ๋๋ ์ฌ๊ฑด๋ง์ ๋ถ๊ฐ์ํค๋ ๊ฒ์ด ํ์ํ๋ค. ๋ฐ๋ผ์ ์์คํ ์ ์ธํ๋ผ์ ๊ด๋ จ๋ ์ฌ๊ฐ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฌ๊ณ ์ ์ฐ์ ์์๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์ด๋ฒคํธ์ ๋ํด ์ด๋ฉ์ผ์ด๋ ์ ๋ณด ์๋ฆผ์ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์๊ฐํ๋ฅผ ์ค์ ํ๋ฉด ํ์ค Kibana ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ์ ์์ ์ง์ ์ ๊ตฌํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์๋ฆผ์ ์ฌ์ฉํ๋ฉด ๋ ์ด๋ ต์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ด ๊ธฐ๋ฅ์ Elasticsearch ๊ธฐ๋ณธ ๋ฒ์ ์๋ ํฌํจ๋์ง ์๊ณ ์ ๋ฃ ๋ฒ์ ์๋ง ํฌํจ๋ฉ๋๋ค. ๋ฐ๋ผ์ ์ ๋ฃ ๋ฒ์ ์ ๊ตฌ๋งคํ๊ฑฐ๋ ์ด๋ฉ์ผ์ด๋ ์ ๋ณด๋ก ์ ๋ฌธ๊ฐ์๊ฒ ์ค์๊ฐ์ผ๋ก ์๋ฆฌ๋ ํ๋ก์ธ์ค๋ฅผ ์ง์ ์์ฑํ์ธ์.
์ ๋ณด ๋ณด์ ํ๋ก์ธ์ค ์๋ํ
๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ํฅ๋ฏธ๋ก์ด ๋ถ๋ถ ์ค ํ๋๋ ์ ๋ณด ๋ณด์ ์ฌ๊ณ ์ ๋ํ ์กฐ์น์ ์๋ํ์
๋๋ค. ์ด์ ์๋ Splunk์ ๋ํด ์ด ๊ธฐ๋ฅ์ ๊ตฌํํ์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฌ๊ธฐ์์ ํ์ธํ ์ ์์ต๋๋ค.
- IPS ์๊ทธ๋์ฒ๋ฅผ ํ์ง์์ ๋ฐฉ์ง๋ก ์ ์กํฉ๋๋ค. Prevent๊ฐ ์ค์ํ ์๋ช ์ ๋ํด ์๋ํ์ง ์๋ ๊ฒฝ์ฐ ์ด๋ ์์๊ฐ ์๋ชป๋ ๊ฒ์ด๋ฉฐ ๋ณดํธ ์์คํ ์ ์ฌ๊ฐํ ๊ณต๋ฐฑ์ด ์๋ ๊ฒ์ ๋๋ค. ์ฐ๋ฆฌ๋ ์ ์ฑ ์ ์กฐ์น๋ฅผ ๊ทธ๋ฌํ ์๋ช ์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค. NGFW ์ฅ์น์ REST API ๊ธฐ๋ฅ์ด ์๋ ๊ฒฝ์ฐ ์ด ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์์ต๋๋ค. ์ด๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ ์ด ์๋ ๊ฒฝ์ฐ์๋ง ๊ฐ๋ฅํ๋ฉฐ, Elastcisearch์์ ํ์ํ ์ ๋ณด๋ฅผ ์ถ์ถํ๊ณ NGFW ๊ด๋ฆฌ ์๋ฒ์ API ์์ฒญ์ ํด์ผ ํฉ๋๋ค.
- ํ๋์ IP ์ฃผ์์ ๋คํธ์ํฌ ํธ๋ํฝ์์ ์ฌ๋ฌ ์๋ช ์ด ๊ฐ์ง๋๊ฑฐ๋ ์ฐจ๋จ๋ ๊ฒฝ์ฐ ๋ฐฉํ๋ฒฝ ์ ์ฑ ์์ ์ ์ ๋์ ์ด IP ์ฃผ์๋ฅผ ์ฐจ๋จํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ํ ๊ตฌํ์ REST API๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑ๋ฉ๋๋ค.
- ์ด ํธ์คํธ์ ๋ค์์ IPS ์๋ช ๋๋ ๊ธฐํ ๋ณด์ ๋๊ตฌ๊ฐ ์๋ ๊ฒฝ์ฐ ์ทจ์ฝ์ฑ ์ค์บ๋๋ก ํธ์คํธ ์ค์บ์ ์คํํ๊ณ , OpenVas์ธ ๊ฒฝ์ฐ SSH๋ฅผ ํตํด ๋ณด์ ์ค์บ๋์ ์ฐ๊ฒฐํ๊ณ ์ค์บ์ ์์ํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
TS ํ ํ์ฌ์ดํธ
์ ์ฒด์ ์ผ๋ก ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๊ฒ์ ๋งค์ฐ ํฌ๊ณ ์ด๋ ค์ด ์์
์
๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ ์ด ์์ด๋ ํ๋ก๋์
์ ์ฌ์ฉํ๊ธฐ์ ์ถฉ๋ถํ ์ต์ ๊ธฐ๋ฅ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ด์ฌ์ด ์๋ค๋ฉด TS Total Sight์ ์ฃผ๋ชฉํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋น์ฌ์์ ํ์ธํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
ELK Stack์ ์ด์ฉํ์ฌ ๊ตฌํํ ์ ์๋ ๊ฒ์ด ๋ฌด์์ธ์ง ์ดํด๋ณด์์ต๋๋ค. ํ์ ๊ธฐ์ฌ์์๋ TS Total Sight์ ๊ธฐ๋ฅ์ ๋ณ๋๋ก ์์ธํ ์ดํด๋ณผ ๊ฒ์ ๋๋ค!
๊ทธ๋ฌ๋ ๊ณ์ ์ง์ผ๋ด ์ฃผ์๊ธฐ ๋ฐ๋๋๋ค(
์ถ์ฒ : habr.com