๋ง์ ์ฌ๋๋ค์ด Elasticsearch๋ก ์ด๋ ค์์ ๊ฒช๊ณ ์์ต๋๋ค. ํ์ง๋ง ์ด๋ฅผ ์ฌ์ฉํ์ฌ "ํนํ ํฐ ๋ณผ๋ฅจ"์ ๋ก๊ทธ๋ฅผ ์ ์ฅํ๋ ค๋ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ๋ ๊น์? ๊ทธ๋ฆฌ๊ณ ์ฌ๋ฌ ๋ฐ์ดํฐ ์ผํฐ ์ค ์ด๋ ํ๋์ ์ฅ์ ๋ฅผ ๊ฒฝํํ๋ ๊ฒ๋ ๊ณ ํต์ค๋ฝ์ง ์์ต๋๊น? ์ด๋ค ์ข ๋ฅ์ ๊ฑด์ถ๋ฌผ์ ๋ง๋ค์ด์ผ ํ๋ฉฐ, ์ด๋ค ํจ์ ์ ๋น ์ง๊ฒ ๋ ๊น์?
Odnoklassniki์์๋ ๋ก๊ทธ ๊ด๋ฆฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Elasticsearch๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ผ๋ฉฐ ์ด์ ์ํคํ ์ฒ์ ํจ์ ์ ๊ดํ ๊ฒฝํ์ Habr๊ณผ ๊ณต์ ํฉ๋๋ค.
์ ๋ Pyotr Zaitsev์ด๊ณ Odnoklassniki์์ ์์คํ ๊ด๋ฆฌ์๋ก ์ผํ๊ณ ์์ต๋๋ค. ๊ทธ ์ ์๋ Manticore Search, Sphinx ๊ฒ์, Elasticsearch๋ฅผ ๋ค๋ฃจ๋ ๊ด๋ฆฌ์์ด๊ธฐ๋ ํ์ต๋๋ค. ์๋ง๋ ๋ ๋ค๋ฅธ ๊ฒ์์ด ๋ํ๋๋ฉด ๋๋ ๊ทธ ๊ฒ์์ ํ ๊ฒ์ ๋๋ค. ์ ๋ ๋ํ ์๋ฐ์ ์ผ๋ก ์ฌ๋ฌ ์คํ ์์ค ํ๋ก์ ํธ์ ์ฐธ์ฌํ๊ณ ์์ต๋๋ค.
Odnoklassniki์ ์์ ๋ ์ธํฐ๋ทฐ์์ Elasticsearch๋ก ์ผํ ์ ์๋ค๊ณ ๋ฌด๋ชจํ๊ฒ ๋งํ์ต๋๋ค. ์๋ น์ ํฐ๋ํ๊ณ ๋ช ๊ฐ์ง ๊ฐ๋จํ ์์ ์ ๋ง์น ํ, ๋น์ ์กด์ฌํ๋ ๋ก๊ทธ ๊ด๋ฆฌ ์์คํ ์ ๊ฐํธํ๋ ํฐ ์๋ฌด๊ฐ ์ฃผ์ด์ก์ต๋๋ค.
์๊ตฌ ์ฌํญ
์์คํ ์๊ตฌ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ด ๊ณต์ํ๋์์ต๋๋ค.
- Graylog๋ฅผ ํ๋ฐํธ์๋๋ก ์ฌ์ฉํ๊ธฐ๋ก ํ์ต๋๋ค. ํ์ฌ์์๋ ์ด๋ฏธ ์ด ์ ํ์ ์ฌ์ฉํด ๋ณธ ๊ฒฝํ์ด ์๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋๋จธ์ ํ ์คํฐ๋ค์ ์ด ์ ํ์ ์๊ณ ์์๊ณ ์ต์ํ๊ณ ํธ๋ฆฌํ์ต๋๋ค.
- ๋ฐ์ดํฐ ๋ณผ๋ฅจ: ์ด๋น ํ๊ท 50~80๊ฐ์ ๋ฉ์์ง์ด์ง๋ง ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด ํธ๋ํฝ์ ์ด๋ค ์ ํ๋ ๋ฐ์ง ์์ผ๋ฉฐ ์ด๋น 2~3๋ฐฑ๋ง ์ค์ด ๋ ์ ์์ต๋๋ค.
- ๊ณ ๊ฐ๊ณผ ๊ฒ์ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ ์๋์ ๋ํ ์๊ตฌ ์ฌํญ์ ๋ ผ์ํ ๊ฒฐ๊ณผ ์ด๋ฌํ ์์คํ ์ ์ฌ์ฉํ๋ ์ผ๋ฐ์ ์ธ ํจํด์ ๋ค์๊ณผ ๊ฐ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ์ฌ๋๋ค์ ์ง๋ ์ดํ ๋์ ์ ํ๋ฆฌ์ผ์ด์ ๋ก๊ทธ๋ฅผ ์ฐพ๊ณ ์์ผ๋ฉฐ XNUMX์๊ฐ ์ด์ ๊ธฐ๋ค๋ฆฌ๊ธฐ๋ฅผ ์ํ์ง ์์ต๋๋ค. ๋ ๋ฒ์งธ๋ ๊ณต์ํ๋ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์ ๋๋ค.
- ๊ด๋ฆฌ์๋ค์ ์์คํ ์๋ ๋ฐฉ์์ ์์ธํ ์์๋ณผ ํ์ ์์ด ํ์ํ ๊ฒฝ์ฐ ์์คํ ์ ์ฝ๊ฒ ํ์ฅํ ์ ์์ด์ผ ํ๋ค๊ณ ์ฃผ์ฅํ์ต๋๋ค.
- ๋ฐ๋ผ์ ์ด๋ฌํ ์์คํ ์ ์ฃผ๊ธฐ์ ์ผ๋ก ํ์ํ ์ ์ผํ ์ ์ง ๊ด๋ฆฌ ์์ ์ ์ผ๋ถ ํ๋์จ์ด๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋๋ค.
- ๋ํ Odnoklassniki๋ ๋ฐ์ด๋ ๊ธฐ์ ์ ์ ํต์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ถ์ํ๋ ๋ชจ๋ ์๋น์ค๋ ๋ฐ์ดํฐ ์ผํฐ ์ฅ์ (๊ฐ์์ค๋ฝ๊ณ , ๊ณํ๋์ง ์์์ผ๋ฉฐ, ์ธ์ ๋ ์ง)์๋ ์ด์๋จ์์ผ ํฉ๋๋ค.
์ด ํ๋ก์ ํธ๋ฅผ ๊ตฌํํ ๋ ๋ง์ง๋ง ์๊ตฌ ์ฌํญ์ ๊ฐ์ฅ ๋ง์ ๋น์ฉ์ด ๋ค์์ต๋๋ค. ์ด์ ๋ํด ๋ ์์ธํ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
์์์ผ
์ฐ๋ฆฌ๋ XNUMX๊ฐ์ ๋ฐ์ดํฐ ์ผํฐ์์ ์ผํ๊ณ ์์ง๋ง Elasticsearch ๋ฐ์ดํฐ ๋ ธ๋๋ (๊ธฐ์ ์ ์ด์ง ์์ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก) XNUMX๊ฐ์๋ง ์์นํ ์ ์์ต๋๋ค.
์ด๋ค 18๊ฐ์ ๋ฐ์ดํฐ ์ผํฐ์๋ ํ๋์จ์ด, ์ปจํ ์ด๋, ๊ฐ์ ๋จธ์ ๋ฑ ์ฝ XNUMX๊ฐ์ ๋ค์ํ ๋ก๊ทธ ์์ค๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์ค์ํ ๊ธฐ๋ฅ: ํด๋ฌ์คํฐ๊ฐ ์ปจํ
์ด๋์์ ์์๋ฉ๋๋ค.
๋ค๋ฅธ ๋ง๋กํ๋ฉด :
ํ ํด๋ก์ง
์ฒ์์๋ ์๋ฃจ์ ์ ์ผ๋ฐ์ ์ธ ํํ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ณด์์ต๋๋ค.
- 3~4๊ฐ์ VIP๋ Graylog ๋๋ฉ์ธ์ A ๋ ์ฝ๋ ๋ค์ ์์ผ๋ฉฐ, ์ด๋ ๋ก๊ทธ๊ฐ ์ ์ก๋๋ ์ฃผ์์ ๋๋ค.
- ๊ฐ VIP๋ LVS ๋ฐธ๋ฐ์์ ๋๋ค.
- ๊ทธ ํ ๋ก๊ทธ๋ Graylog ๋ฐฐํฐ๋ฆฌ๋ก ์ด๋ํ๊ณ ์ผ๋ถ ๋ฐ์ดํฐ๋ GELF ํ์์ด๊ณ ์ผ๋ถ๋ syslog ํ์์ ๋๋ค.
- ๊ทธ๋ฐ ๋ค์ ์ด ๋ชจ๋ ๋ด์ฉ์ด Elasticsearch ์ฝ๋๋ค์ดํฐ ๋ฐฐํฐ๋ฆฌ์ ๋๊ท๋ชจ ๋ฐฐ์น๋ก ๊ธฐ๋ก๋ฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ๊ด๋ จ ๋ฐ์ดํฐ ๋ ธ๋์ ์ฐ๊ธฐ ๋ฐ ์ฝ๊ธฐ ์์ฒญ์ ๋ณด๋ ๋๋ค.
์ ๋ฌธ ์ฉ์ด
์๋ง๋ ๋ชจ๋ ์ฌ๋์ด ์ฉ์ด๋ฅผ ์์ธํ ์ดํดํ๋ ๊ฒ์ ์๋๋ฏ๋ก ์กฐ๊ธ ๋ ์์ธํ ์ค๋ช ํ๊ณ ์ถ์ต๋๋ค.
Elasticsearch์๋ ๋ง์คํฐ, ์ฝ๋๋ค์ดํฐ, ๋ฐ์ดํฐ ๋ ธ๋ ๋ฑ ์ฌ๋ฌ ์ ํ์ ๋ ธ๋๊ฐ ์์ต๋๋ค. ์๋ก ๋ค๋ฅธ ๋ก๊ทธ ๋ณํ ๋ฐ ์๋ก ๋ค๋ฅธ ํด๋ฌ์คํฐ ๊ฐ์ ํต์ ์ ์ํ ๋ ๊ฐ์ง ๋ค๋ฅธ ์ ํ์ด ์์ง๋ง ์ฐ๋ฆฌ๋ ๋์ด๋ ์ ํ๋ง ์ฌ์ฉํ์ต๋๋ค.
๋ง์คํฐ
ํด๋ฌ์คํฐ์ ์๋ ๋ชจ๋ ๋
ธ๋๋ฅผ pingํ๊ณ , ์ต์ ํด๋ฌ์คํฐ ๋งต์ ์ ์ง ๊ด๋ฆฌํ๊ณ , ์ด๋ฅผ ๋
ธ๋ ๊ฐ์ ๋ฐฐํฌํ๊ณ , ์ด๋ฒคํธ ๋ก์ง์ ์ฒ๋ฆฌํ๊ณ , ๋ค์ํ ์ข
๋ฅ์ ํด๋ฌ์คํฐ ์ ์ฒด ๊ด๋ฆฌ๋ฅผ ์ํํฉ๋๋ค.
์กฐ์ ์
๋จ์ผ ์์
์ ์ํํฉ๋๋ค. ํด๋ผ์ด์ธํธ์ ์ฝ๊ธฐ ๋๋ ์ฐ๊ธฐ ์์ฒญ์ ์๋ฝํ๊ณ ์ด ํธ๋ํฝ์ ๋ผ์ฐํ
ํฉ๋๋ค. ์ฐ๊ธฐ ์์ฒญ์ด ์๋ ๊ฒฝ์ฐ ๋ง์คํฐ์๊ฒ ๊ด๋ จ ์ธ๋ฑ์ค์ ์ด๋ค ์ค๋๋ฅผ ๋ฃ์ด์ผ ํ๋์ง ๋ฌป๊ณ ์์ฒญ์ ์ถ๊ฐ๋ก ๋ฆฌ๋๋ ์
ํ ๊ฒ์
๋๋ค.
๋ฐ์ดํฐ ๋
ธ๋
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ , ์ธ๋ถ์์ ๋ค์ด์ค๋ ๊ฒ์ ์ฟผ๋ฆฌ๋ฅผ ์ํํ๋ฉฐ, ํด๋น ๋ฐ์ดํฐ์ ์๋ ์ค๋์ ๋ํ ์์
์ ์ํํฉ๋๋ค.
๊ทธ๋ ์ด๋ก๊ทธ
์ด๋ ELK ์คํ์์ Kibana์ Logstash๋ฅผ ์ตํฉํ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. Graylog๋ UI์ ๋ก๊ทธ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ์ ๋ชจ๋ ๊ฒฐํฉํฉ๋๋ค. ๋ด๋ถ์ ์ผ๋ก Graylog๋ Kafka ๋ฐ Zookeeper๋ฅผ ์คํํ์ฌ Graylog์ ๋ํ ์ฐ๊ฒฐ์ ํด๋ฌ์คํฐ๋ก ์ ๊ณตํฉ๋๋ค. Graylog๋ Elasticsearch๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ๋ก๊ทธ(Kafka)๋ฅผ ์บ์ํ๊ณ ์คํจํ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์์ฒญ์ ๋ฐ๋ณตํ๊ณ ์ง์ ๋ ๊ท์น์ ๋ฐ๋ผ ๋ก๊ทธ๋ฅผ ๊ทธ๋ฃนํํ๊ณ ํ์ํ ์ ์์ต๋๋ค. Logstash์ ๋ง์ฐฌ๊ฐ์ง๋ก Graylog์๋ ํ์ Elasticsearch์ ์ฐ๊ธฐ ์ ์ ์์ ํ๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
๋ํ Graylog์๋ ์ฌ์ฉ ๊ฐ๋ฅํ ํ๋์ Elasticsearch ๋ ธ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ์ฒด ํด๋ฌ์คํฐ ๋งต์ ์ป๊ณ ์ด๋ฅผ ํน์ ํ๊ทธ๋ก ํํฐ๋งํ ์ ์๋ ๋ด์ฅ ์๋น์ค ๊ฒ์ ๊ธฐ๋ฅ์ด ์์ด ํน์ ์ปจํ ์ด๋์ ์์ฒญ์ ์ ๋ฌํ ์ ์์ต๋๋ค.
์๊ฐ์ ์ผ๋ก ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํน์ ์ธ์คํด์ค์ ์คํฌ๋ฆฐ์ท์ ๋๋ค. ์ฌ๊ธฐ์์๋ ๊ฒ์์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์คํ ๊ทธ๋จ์ ์์ฑํ๊ณ ๊ด๋ จ ํ์ ํ์ํฉ๋๋ค.
์ง์
์์คํ ์ํคํ ์ฒ๋ก ๋์๊ฐ์ ๋ชจ๋ ๊ฒ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋๋ก ์ธ๋ฑ์ค ๋ชจ๋ธ์ ๊ตฌ์ถํ ๋ฐฉ๋ฒ์ ๋ํด ๋ ์์ธํ ์ค๋ช ํ๊ณ ์ถ์ต๋๋ค.
์ ๋ค์ด์ด๊ทธ๋จ์์ ์ด๋ ๊ฐ์ฅ ๋ฎ์ ์์ค์ธ Elasticsearch ๋ฐ์ดํฐ ๋ ธ๋์ ๋๋ค.
์ธ๋ฑ์ค๋ Elasticsearch ์ค๋๋ก ๊ตฌ์ฑ๋ ๋๊ท๋ชจ ๊ฐ์ ์ํฐํฐ์ ๋๋ค. ๊ทธ ์์ฒด๋ก ๊ฐ ์ค๋๋ Lucene ์ธ๋ฑ์ค์ ์ง๋์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ Lucene ์ธ๋ฑ์ค๋ ํ๋ ์ด์์ ์ธ๊ทธ๋จผํธ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์ค๊ณํ ๋ ์ฐ๋ฆฌ๋ ๋๋์ ๋ฐ์ดํฐ์ ๋ํ ์ฝ๊ธฐ ์๋ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ค๋ฉด ์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ ๋ ธ๋ ์ ์ฒด์ ๊ณ ๋ฅด๊ฒ "๋ถ์ฐ"ํด์ผ ํ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
์ด๋ก ์ธํด ์ธ๋ฑ์ค๋น ์ค๋(๋ณต์ ๋ณธ ํฌํจ) ์๊ฐ ๋ฐ์ดํฐ ๋ ธ๋ ์์ ์๊ฒฉํ๊ฒ ๋์ผํด์ผ ํ๋ค๋ ์ฌ์ค์ด ๋ํ๋ฌ์ต๋๋ค. ์ฒซ์งธ, ๋ณต์ ์ธ์๊ฐ XNUMX๊ฐ ๋๋๋ก ๋ณด์ฅํ๊ธฐ ์ํด(์ฆ, ํด๋ฌ์คํฐ์ ์ ๋ฐ์ ์์ ์ ์์) ๋์งธ, ํด๋ฌ์คํฐ์ ์ ๋ฐ ์ด์์์ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์์ฒญ์ ์ฒ๋ฆฌํฉ๋๋ค.
๋จผ์ ๋ณด๊ด ๊ธฐ๊ฐ์ 30์ผ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
์ค๋์ ๋ถํฌ๋ ๋ค์๊ณผ ๊ฐ์ด ๊ทธ๋ํฝ์ผ๋ก ํํ๋ ์ ์์ต๋๋ค.
์ด๋์ด ํ์ ์ง์ฌ๊ฐํ ์ ์ฒด๊ฐ ์์ธ์ ๋๋ค. ์ผ์ชฝ ๋นจ๊ฐ์ ์ฌ๊ฐํ์ ์ธ๋ฑ์ค์ ์ฒซ ๋ฒ์งธ ์ค๋์ธ ๊ธฐ๋ณธ ์ค๋์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋์ ์ฌ๊ฐํ์ ๋ณต์ ํํธ์ ๋๋ค. ์๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ ์ผํฐ์ ์์นํด ์์ต๋๋ค.
๋ค๋ฅธ ์ค๋๋ฅผ ์ถ๊ฐํ๋ฉด ์ธ ๋ฒ์งธ ๋ฐ์ดํฐ ์ผํฐ๋ก ์ด๋๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฒฐ๊ตญ ์ฐ๋ฆฌ๋ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ์์ง ์๊ณ DC๋ฅผ ์์ ์ ์๋ ๋ค์ ๊ตฌ์กฐ๋ฅผ ์ป์ต๋๋ค.
์ธ๋ฑ์ค ํ์ , ์ฆ ์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๊ณ ๊ฐ์ฅ ์ค๋๋ ์ธ๋ฑ์ค๋ฅผ ์ญ์ ํ์ฌ 48์๊ฐ์ผ๋ก ์ค์ ํ์ต๋๋ค(์ธ๋ฑ์ค ์ฌ์ฉ ํจํด์ ๋ฐ๋ผ ์ต๊ทผ 48์๊ฐ์ด ๊ฐ์ฅ ์์ฃผ ๊ฒ์๋ฉ๋๋ค).
์ด ์ธ๋ฑ์ค ํ์ ๊ฐ๊ฒฉ์ ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ์ธํด ๋ฐ์ํฉ๋๋ค.
ํน์ ๋ฐ์ดํฐ ๋ ธ๋์ ๊ฒ์ ์์ฒญ์ด ๋์ฐฉํ๋ฉด ์ฑ๋ฅ ๊ด์ ์์ ๋ณผ ๋ ๊ทธ ํฌ๊ธฐ๊ฐ ๋ ธ๋์ ์๋ฉ์ด ํฌ๊ธฐ์ ๋น์ทํ ๊ฒฝ์ฐ ํ๋์ ์ค๋๋ฅผ ์ฟผ๋ฆฌํ๋ ๊ฒ์ด ๋ ์ ๋ฆฌํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ธ๋ฑ์ค์ "ํซ" ๋ถ๋ถ์ ํ์ ์ ์งํ๊ณ ๋น ๋ฅด๊ฒ ์ก์ธ์คํ ์ ์์ต๋๋ค. "ํซํํธ"๊ฐ ๋ง์ผ๋ฉด ์ธ๋ฑ์ค ๊ฒ์ ์๋๊ฐ ์ ํ๋ฉ๋๋ค.
๋ ธ๋๊ฐ ํ๋์ ์ค๋์์ ๊ฒ์ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๊ธฐ ์์ํ๋ฉด ๋ฌผ๋ฆฌ์ ์์คํ ์ ํ์ดํผ์ค๋ ๋ฉ ์ฝ์ด ์์ ๋์ผํ ์์ ์ค๋ ๋๋ฅผ ํ ๋นํฉ๋๋ค. ๊ฒ์ ์ฟผ๋ฆฌ๊ฐ ๋ค์์ ์ค๋์ ์ํฅ์ ๋ฏธ์น๋ ๊ฒฝ์ฐ ์ค๋ ๋ ์๊ฐ ๋น๋ก์ ์ผ๋ก ๋์ด๋ฉ๋๋ค. ์ด๋ ๊ฒ์ ์๋์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น๊ณ ์ ๋ฐ์ดํฐ์ ์ธ๋ฑ์ฑ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
ํ์ํ ๊ฒ์ ๋๊ธฐ ์๊ฐ์ ์ ๊ณตํ๊ธฐ ์ํด SSD๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์์ฒญ์ ์ ์ํ๊ฒ ์ฒ๋ฆฌํ๋ ค๋ฉด ์ด๋ฌํ ์ปจํ ์ด๋๋ฅผ ํธ์คํ ํ๋ ์์คํ ์ ์ฝ์ด๊ฐ 56๊ฐ ์ด์ ์์ด์ผ ํ์ต๋๋ค. 56์ด๋ผ๋ ์ซ์๋ Elasticsearch๊ฐ ์์ ์ค์ ์์ฑํ ์ค๋ ๋ ์๋ฅผ ๊ฒฐ์ ํ๋ ์กฐ๊ฑด๋ถ ์ถฉ๋ถ ๊ฐ์ผ๋ก ์ ํ๋์์ต๋๋ค. Elasitcsearch์์ ๋ง์ ์ค๋ ๋ ํ ๋งค๊ฐ๋ณ์๋ ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ์ด ์์ ์ง์ ์ ์ผ๋ก ์์กดํ๋ฉฐ, ์ด๋ "๋ ์ ์ ์ฝ์ด - ๋ ๋ง์ ๋ ธ๋" ์์น์ ๋ฐ๋ผ ํด๋ฌ์คํฐ์ ํ์ํ ๋ ธ๋ ์์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
๊ทธ ๊ฒฐ๊ณผ, ํ๊ท ์ ์ผ๋ก ์ค๋ ํ๋์ ๋ฌด๊ฒ๋ ์ฝ 20GB์ด๊ณ , ์ธ๋ฑ์ค๋น ์ค๋ ์๋ 1๊ฐ๋ผ๋ ๊ฒ์ ์์๋์ต๋๋ค. ๋ฐ๋ผ์ 360์๊ฐ๋ง๋ค ํ ๋ฒ์ฉ ๊ต์ฒดํ๋ฉด 48๊ฐ๊ฐ ๋ฉ๋๋ค. ๊ฐ ์ธ๋ฑ์ค์๋ 15์ผ ๋์์ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ฉ๋๋ค.
๋ฐ์ดํฐ ์ฐ๊ธฐ ๋ฐ ์ฝ๊ธฐ ํ๋ก
์ด ์์คํ ์์ ๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ๊ธฐ๋ก๋๋์ง ์์ ๋ณด๊ฒ ์ต๋๋ค.
Graylog์์ ์ฝ๋๋ค์ดํฐ์๊ฒ ์ผ๋ถ ์์ฒญ์ด ๋์ฐฉํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์๋ฅผ ๋ค์ด 2~3๊ฐ์ ํ์ ์์ธํํ๋ ค๊ณ ํฉ๋๋ค.
Graylog๋ก๋ถํฐ ์์ฒญ์ ๋ฐ์ ์ฝ๋๋ค์ดํฐ๋ ๋ง์คํฐ์๊ฒ "์ธ๋ฑ์ฑ ์์ฒญ์์ ์ธ๋ฑ์ค๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ์ง์ ํ์ง๋ง ์ด๋ฅผ ์์ฑํ ์ค๋๊ฐ ์ง์ ๋์ง ์์์ต๋๋ค."๋ผ๊ณ ์ง๋ฌธํฉ๋๋ค.
๋ง์คํฐ๋ "์ด ์ ๋ณด๋ฅผ ์ค๋ ๋ฒํธ 71์ ๊ธฐ๋กํ์ธ์"๋ผ๊ณ ์๋ตํ ํ ๊ธฐ๋ณธ ์ค๋ ๋ฒํธ 71์ด ์๋ ๊ด๋ จ ๋ฐ์ดํฐ ๋ ธ๋๋ก ์ง์ ์ ์ก๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ํธ๋์ญ์ ๋ก๊ทธ๋ ๋ค๋ฅธ ๋ฐ์ดํฐ ์ผํฐ์ ์๋ ๋ณต์ ๋ณธ ์ค๋๋ก ๋ณต์ ๋ฉ๋๋ค.
Graylog์์ ์ฝ๋๋ค์ดํฐ์๊ฒ ๊ฒ์ ์์ฒญ์ด ๋์ฐฉํฉ๋๋ค. ์ฝ๋๋ค์ดํฐ๋ ์ธ๋ฑ์ค์ ๋ฐ๋ผ ์ด๋ฅผ ๋ฆฌ๋๋ ์ ํ๋ ๋ฐ๋ฉด Elasticsearch๋ ๋ผ์ด๋ ๋ก๋น ์์น์ ์ฌ์ฉํ์ฌ ๊ธฐ๋ณธ ์ค๋์ ๋ณต์ ๋ณธ ์ค๋ ๊ฐ์ ์์ฒญ์ ๋ถ์ฐํฉ๋๋ค.
180๊ฐ์ ๋ ธ๋๋ ๊ณ ๋ฅด์ง ์๊ฒ ์๋ตํ๋ฉฐ, ์๋ตํ๋ ๋์ ์ฝ๋๋ค์ดํฐ๋ ๋ ๋น ๋ฅธ ๋ฐ์ดํฐ ๋ ธ๋์ ์ํด ์ด๋ฏธ "๋ฑ์ด๋ธ" ์ ๋ณด๋ฅผ ์ถ์ ํ๊ณ ์์ต๋๋ค. ๊ทธ ํ ๋ชจ๋ ์ ๋ณด๊ฐ ๋์ฐฉํ๊ฑฐ๋ ์์ฒญ์ด ์๊ฐ ์ด๊ณผ์ ๋๋ฌํ๋ฉด ๋ชจ๋ ์ ๋ณด๊ฐ ํด๋ผ์ด์ธํธ์ ์ง์ ์ ๊ณต๋ฉ๋๋ค.
์ด ์ ์ฒด ์์คํ ์ ํ๊ท ์ ์ผ๋ก ์ง๋ 48์๊ฐ ๋์์ ๊ฒ์ ์ฟผ๋ฆฌ๋ฅผ 300-400ms ๋ด์ ์ฒ๋ฆฌํฉ๋๋ค. ๋จ, ์์ ์์ผ๋์นด๋๊ฐ ์๋ ์ฟผ๋ฆฌ๋ ์ ์ธ๋ฉ๋๋ค.
Elasticsearch๋ฅผ ์ฌ์ฉํ ๊ฝ: Java ์ค์
๋ชจ๋ ๊ฒ์ด ์๋ ์ํ๋ ๋ฐฉ์์ผ๋ก ์๋ํ๋๋ก ํ๊ธฐ ์ํด ํด๋ฌ์คํฐ์ ๋ค์ํ ํญ๋ชฉ์ ๋๋ฒ๊น ํ๋ ๋ฐ ๋งค์ฐ ์ค๋ ์๊ฐ์ ๋ณด๋์ต๋๋ค.
๋ฐ๊ฒฌ๋ ๋ฌธ์ ์ ์ฒซ ๋ฒ์งธ ๋ถ๋ถ์ Elasticsearch์์ Java๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ ๊ตฌ์ฑ๋๋ ๋ฐฉ์๊ณผ ๊ด๋ จ์ด ์์์ต๋๋ค.
์ฒซ ๋ฒ์งธ ๋ฌธ์
Lucene ์์ค์์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์
์ด ์คํ ์ค์ผ ๋ Lucene ์ธ๊ทธ๋จผํธ ๋ณํฉ์ด ์ค๋ฅ์ ํจ๊ป ์คํจํ๋ค๋ ๋ณด๊ณ ๊ฐ ๋งค์ฐ ๋ง์ด ๊ด์ฐฐ๋์์ต๋๋ค. ๋์์ ๋ก๊ทธ์๋ ์ด๊ฒ์ด OutOfMemoryError ์ค๋ฅ๋ผ๋ ๊ฒ์ด ๋ถ๋ช
ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์๊ฒฉ ์ธก์ ์ ํตํด ์๋ฉ์ด๊ฐ ์์ ๋ก์ด ๊ฒ์ ๋ณด์์ผ๋ฉฐ ์ด ์์
์ด ์คํจํ ์ด์ ๋ ๋ช
ํํ์ง ์์์ต๋๋ค.
Lucene ์ง์ ๋ณํฉ์ ์๋ฉ์ด ์ธ๋ถ์์ ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ปจํ ์ด๋๋ ์๋น๋๋ ๋ฆฌ์์ค ์ธก๋ฉด์์ ๋งค์ฐ ์๊ฒฉํ๊ฒ ์ ํ๋ฉ๋๋ค. ํ๋ง ์ด๋ฌํ ๋ฆฌ์์ค์ ๋ค์ด๊ฐ ์ ์์ผ๋ฉฐ(heap.size ๊ฐ์ ๋๋ต RAM๊ณผ ๋์ผํจ) ์ผ๋ถ ์คํ ํ ์์ ์ ์ด๋ค ์ด์ ๋ก ์ ํ ์ด์ ์ ๋จ์ ์๋ ~500MB์ ๋ง์ง ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ํ ๋น ์ค๋ฅ๋ก ์ธํด ์ถฉ๋์ด ๋ฐ์ํ์ต๋๋ค.
์์ ์ฌํญ์ ๋งค์ฐ ๊ฐ๋จํ์ต๋๋ค. ์ปจํ ์ด๋์ ์ฌ์ฉํ ์ ์๋ RAM์ ์์ด ์ฆ๊ฐํ ํ ์ฐ๋ฆฌ๋ ๊ทธ๋ฌํ ๋ฌธ์ ๊ฐ ์๋ค๋ ์ฌ์ค์กฐ์ฐจ ์์ด๋ฒ๋ ธ์ต๋๋ค.
๋ฌธ์ XNUMX
ํด๋ฌ์คํฐ ์์ ํ 4~5์ผ ํ์ ๋ฐ์ดํฐ ๋
ธ๋๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ํด๋ฌ์คํฐ์์ ๋น ์ ธ๋์ค๊ณ 10~20์ด ํ์ ํด๋ฌ์คํฐ์ ๋ค์ด๊ฐ๊ธฐ ์์ํ๋ ๊ฒ์ ํ์ธํ์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ๊ทธ๊ฒ์ ์์๋ด๊ธฐ ์์ํ์ ๋ Elasticsearch์ ์ด ์คํ ํ ๋ฉ๋ชจ๋ฆฌ๋ ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ์ ์ด๋์ง ์๋๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค. ์ปจํ ์ด๋์ ๋ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ์ ๋ ์ง์ ๋ฒํผ ํ์ ๋ค์ํ ์ ๋ณด๋ก ์ฑ์ธ ์ ์์๊ณ Elasticsearch์์ ๋ช ์์ GC๊ฐ ์์๋ ํ์์ผ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ง์์ก์ต๋๋ค.
์ด๋ค ๊ฒฝ์ฐ์๋ ์ด ์์
์ ๊ฝค ์ค๋ ์๊ฐ์ด ๊ฑธ๋ ธ์ผ๋ฉฐ ์ด ์๊ฐ ๋์ ํด๋ฌ์คํฐ๋ ์ด ๋
ธ๋๋ฅผ ์ด๋ฏธ ์ข
๋ฃ๋ ๊ฒ์ผ๋ก ํ์ํ์ต๋๋ค. ์ด ๋ฌธ์ ๋ ์ ์ค๋ช
๋์ด ์์ต๋๋ค.
ํด๊ฒฐ์ฑ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ด๋ฌํ ์์ ์ ์ํด ํ ์ธ๋ถ์ ๋๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ Java์ ๊ธฐ๋ฅ์ ์ ํํ์ต๋๋ค. ์ด๋ฅผ 16GB(-XX:MaxDirectMemorySize=16g)๋ก ์ ํํ์ฌ ๋ช ์์ GC๊ฐ ํจ์ฌ ๋ ์์ฃผ ํธ์ถ๋๊ณ ํจ์ฌ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ๋์ด ๋ ์ด์ ํด๋ฌ์คํฐ๊ฐ ๋ถ์์ ํด์ง์ง ์๋๋ก ํ์ต๋๋ค.
๋ฌธ์ XNUMX
โ๊ฐ์ฅ ์์์น ๋ชปํ ์๊ฐ์ ๋
ธ๋๊ฐ ํด๋ฌ์คํฐ๋ฅผ ๋ ๋๋โ ๋ฌธ์ ๊ฐ ๋๋ฌ๋ค๊ณ ์๊ฐํ๋ค๋ฉด ์ฐฉ๊ฐ์
๋๋ค.
์ธ๋ฑ์ค๋ก ์์
์ ๊ตฌ์ฑํ ๋ mmapfs๋ฅผ ์ ํํ์ต๋๋ค.
์ด ๋์์ ์์ ๊ธฐ ์ํด ๋จผ์ ํ์ค niofs๋ก ์ ํํ ๋ค์ Elastic์ ๋ค์ฏ ๋ฒ์งธ ๋ฒ์ ์์ ์ฌ์ฏ ๋ฒ์งธ ๋ฒ์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
ํ ๋ hybridfs๋ฅผ ์๋ํ์ง๋ง ์ด ๋ฌธ์ ๋ ์ฌํ๋์ง ์์์ต๋๋ค. ์ ์ฅ์ ์ ํ์ ๋ํด ์์ธํ ์์๋ณผ ์ ์์ต๋๋ค.
๋ฌธ์ XNUMX
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ๊ธฐ๋ก์ ์ธ ์๊ฐ ๋์ ๋ค๋ฃจ์๋ ๋ ๋ค๋ฅธ ๋งค์ฐ ํฅ๋ฏธ๋ก์ด ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ํจํด์ด ์ ํ ์ดํด๊ฐ ์ ๋๊ธฐ ๋๋ฌธ์ 2~3๊ฐ์ ๋์ ์ก์์ต๋๋ค.
๋๋๋ก ์ฐ๋ฆฌ ์ฝ๋๋ค์ดํฐ๋ ๋ณดํต ์ ์ฌ ์์ฌ ํ์ Full GC์ ๊ฐ๋ค๊ฐ ๋ค์๋ ๋์์ค์ง ์์์ต๋๋ค. ๋์์ GC ์ง์ฐ์ ๊ธฐ๋กํ ๋ ๋ค์๊ณผ ๊ฐ์ด ๋ณด์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ์ ์งํ๋๊ณ ์์๋๋ฐ ๊ฐ์๊ธฐ ๋ชจ๋ ๊ฒ์ด ๋งค์ฐ ๋๋น ์ก์ต๋๋ค.
์ฒ์์ ์ฐ๋ฆฌ๋ ์ฝ๋๋ค์ดํฐ๋ฅผ ์์ ๋ชจ๋์์ ์ข ๋ฃ์ํค๋ ์ผ์ข ์ ์์ฒญ์ ์คํํ๋ ์ฌ์ ํ ์ฌ์ฉ์๊ฐ ์๋ค๊ณ ์๊ฐํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ํ์ ํ๊ธฐ ์ํด ๋งค์ฐ ์ค๋ซ๋์ ์์ฒญ์ ๊ธฐ๋กํ์ต๋๋ค.
๊ทธ ๊ฒฐ๊ณผ, ์ฌ์ฉ์๊ฐ ๋๊ท๋ชจ ์์ฒญ์ ์์ํ๊ณ ํน์ Elasticsearch ์ฝ๋๋ค์ดํฐ์ ๋๋ฌํ๋ ์๊ฐ ์ผ๋ถ ๋ ธ๋๋ ๋ค๋ฅธ ๋ ธ๋๋ณด๋ค ๋ ์ค๋ ์๋ตํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฝ๋๋ค์ดํฐ๋ ๋ชจ๋ ๋ ธ๋์ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๋ ๋์ ์ด๋ฏธ ์๋ตํ ๋ ธ๋๋ค๋ก๋ถํฐ ์ ์ก๋ ๊ฒฐ๊ณผ๋ฅผ ๋์ ํ๋ค. GC์ ๊ฒฝ์ฐ ์ด๋ ํ ์ฌ์ฉ ํจํด์ด ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋ณํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ GC๋ ์ด ์์ ์ ์ฒ๋ฆฌํ ์ ์์์ต๋๋ค.
์ด ์ํฉ์์ ํด๋ฌ์คํฐ์ ๋์์ ๋ณ๊ฒฝํ๊ธฐ ์ํด ์ฐพ์ ์ ์ผํ ์์ ์ฌํญ์ JDK13์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ณ Shenandoah ๊ฐ๋น์ง ์์ง๊ธฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ์ด๋ก ์ธํด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์๊ณ ์ฝ๋๋ค์ดํฐ๊ฐ ๋์ด์ง๋ ๊ฒ์ ๋ฉ์ท์ต๋๋ค.
์ฌ๊ธฐ์ Java ๋ฌธ์ ๊ฐ ๋๋๊ณ ๋์ญํญ ๋ฌธ์ ๊ฐ ์์๋์์ต๋๋ค.
Elasticsearch๋ฅผ ์ฌ์ฉํ "๋ฒ ๋ฆฌ": ์ฒ๋ฆฌ๋
์ฒ๋ฆฌ๋ ๋ฌธ์ ๋ ํด๋ฌ์คํฐ๊ฐ ์์ ์ ์ผ๋ก ์๋ํ๋ค๋ ๊ฒ์ ์๋ฏธํ์ง๋ง, ์์ธ๋ ๋ฌธ์ ์๊ฐ ์ต๊ณ ์กฐ์ ๋ฌํ๊ณ ์กฐ์ ์ค์๋ ์ฑ๋ฅ์ด ๋ถ์กฑํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ์ฆ์: ํ๋ก๋์ ์ค ์ผ๋ถ "ํญ๋ฐ" ์ค์ ๋งค์ฐ ๋ง์ ์์ ๋ก๊ทธ๊ฐ ๊ฐ์๊ธฐ ์์ฑ๋๋ฉด ์ธ๋ฑ์ฑ ์ค๋ฅ es_rejected_execution์ด Graylog์์ ์์ฃผ ๊น๋ฐ์ด๊ธฐ ์์ํฉ๋๋ค.
์ด๋ Elasticsearch๊ฐ ์ธ๋ฑ์ฑ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ์ ๋ณด๋ฅผ ๋์คํฌ์ ์ค๋์ ์
๋ก๋ํ ์ ์์ ๋๊น์ง ํ๋์ ๋ฐ์ดํฐ ๋
ธ๋์ ์๋ thread_pool.write.queue๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก 200๊ฐ์ ์์ฒญ๋ง ์บ์ํ ์ ์๋ค๋ ์ฌ์ค ๋๋ฌธ์ด์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ
๋ฌผ๋ก ์ฐ๋ฆฌ๋ ์ด ๊ฐ์ ๋นํ์ด ๋ค์๊ณผ ๊ฐ์ ์ฌ์ค์ ๋ฐ๊ฒฌํ์ต๋๋ค. ํนํ ์ฐ๋ฆฌ ์ค์ ์์๋ ์ต๋ 300๊ฐ์ ์์ฒญ์ด ์๋นํ ์ ์บ์๋๊ณ ๋ ๋์ ๊ฐ์ ๋ค์ Full GC๋ก ์ด๋ํ๋ค๋ ์ฌ์ค๋ก ๊ฐ๋ ์ฐจ ์์ต๋๋ค.
๋ํ ์ด๋ ํ๋์ ์์ฒญ ๋ด์ ๋์ฐฉํ๋ ๋ฉ์์ง ๋ฐฐ์น์ด๊ธฐ ๋๋ฌธ์ ์์ฃผ, ์์ ๋ฐฐ์น๋ก ์ฐ์ง ์๊ณ ๋๊ท๋ชจ ๋ฐฐ์น๋ก ์ฐ๊ฑฐ๋ ๋ฐฐ์น๊ฐ ์์ง ์๋ฃ๋์ง ์์ ๊ฒฝ์ฐ 3์ด์ ํ ๋ฒ์ฉ ์ฐ๋๋ก Graylog๋ฅผ ์กฐ์ ํด์ผ ํ์ต๋๋ค. ์ด ๊ฒฝ์ฐ Elasticsearch์ ์์ฑํ ์ ๋ณด๋ XNUMX์ด๊ฐ ์๋๋ผ XNUMX์ด(์ฐ๋ฆฌ์๊ฒ ๋งค์ฐ ์ ํฉํจ)์ ์ฌ์ฉํ ์ ์๊ฒ ๋์ง๋ง, ๋๊ท๋ชจ ํ๋ก์ธ์ค๋ฅผ ํต๊ณผํ๊ธฐ ์ํด ๋ง๋ค์ด์ผ ํ๋ ์ฌํธ๋ ์ด ํ์๊ฐ ๋ง์ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์ ๋ณด์ ์คํ์ด ์ค์ด๋ญ๋๋ค.
์ด๋ ์ด๋๊ฐ์์ ์ถฉ๋์ด ๋ฐ์ํ์ฌ ์ด์ ๋ํด ๊ฒฉ๋ ฌํ๊ฒ ๋ณด๊ณ ํ๋ ์๊ฐ์ ํนํ ์ค์ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์์ ํ ์คํธ ์ฒ๋ฆฌ๋ Elastic์ ์ป์ง ๋ชปํ๊ณ ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด ๋งํ ๋ฒํผ๋ก ์ธํด ์๋ํ ์ ์๋ Graylog ๋ ธ๋๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
๋ํ ์์ฐ์ด ์ด์ ๊ฐ์ด ํญ๋ฐ์ ์ผ๋ก ์ฆ๊ฐํ์ ๋ ํ๋ก๊ทธ๋๋จธ์ ํ ์คํฐ๋ก๋ถํฐ ๋ถ๋ง์ ์ ์ํ์ต๋๋ค. ์ค์ ๋ก ์ด๋ฌํ ๋ก๊ทธ๊ฐ ํ์ํ ์๊ฐ์ ๋ก๊ทธ๊ฐ ๋งค์ฐ ๋๋ฆฌ๊ฒ ์ ๊ณต๋์์ต๋๋ค.
๊ทธ๋ค์ ๊ทธ๊ฒ์ ์์๋ด๊ธฐ ์์ํ์ต๋๋ค. ํํธ์ผ๋ก๋ ๊ฒ์ ์ฟผ๋ฆฌ์ ์ธ๋ฑ์ฑ ์ฟผ๋ฆฌ๊ฐ ๋ณธ์ง์ ์ผ๋ก ๋์ผํ ๋ฌผ๋ฆฌ์ ์์คํ ์์ ์ฒ๋ฆฌ๋์์ผ๋ฉฐ ์ด๋ค ์์ผ๋ก๋ ํน์ ๋จ์ ์ด ์์ ๊ฒ์ด ๋ถ๋ช ํ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ Elasticsearch์ ์ฌ์ฏ ๋ฒ์งธ ๋ฒ์ ์์ ๋ฌด์์ ๋ผ์ด๋ ๋ก๋น ์์น(์ธ๋ฑ์ฑ์ ์ํํ๊ณ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฅผ ๋ณด๊ดํ๋ ์ปจํ ์ด๋)์ ๋ฐ๋ฅด์ง ์๊ณ ๊ด๋ จ ๋ฐ์ดํฐ ๋ ธ๋ ๊ฐ์ ์ฟผ๋ฆฌ๋ฅผ ๋ฐฐํฌํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ด ๋ฑ์ฅํ๊ธฐ ๋๋ฌธ์ ๋ถ๋ถ์ ์ผ๋ก ์ฐํ๋ ์ ์์ต๋๋ค. ์ค๋๋ ๋งค์ฐ ๋ฐ์ ์ ์์ผ๋ฏ๋ก ๋น ๋ฅด๊ฒ ์๋ตํ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ํ์ง๋ง ์ด ์์ฒญ์ ๋ณต์ ๋ณธ ์ค๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๋๊ฐ ์ ์ ์ปจํ ์ด๋์ ์ ๋ฌํ๋ฉด ํจ์ฌ ๋น ๋ฅด๊ฒ ์๋ตํฉ๋๋ค. ์ฆ, use_adaptive_replica_selection: true์ ๋๋ฌํ์ต๋๋ค.
๋ ์ ๊ทธ๋ฆผ์ ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ด๊ธฐ ์์ํฉ๋๋ค.
์ด ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์ ํํ๋ฉด ์์ฑํ ๋ก๊ทธ ํ๋ฆ์ด ๋ง์ ๋ ์ฟผ๋ฆฌ ์๊ฐ์ด ํฌ๊ฒ ํฅ์๋ ์ ์์์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก, ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ๋ฐ์ดํฐ ์ผํฐ๋ฅผ ์ฝ๊ฒ ์ ๊ฑฐํ๋ ๊ฒ์ด์์ต๋๋ค.
ํ๋์ DC์์ ์ฐ๊ฒฐ์ด ๋์ด์ง ์งํ ํด๋ฌ์คํฐ์์ ์ํ๋ ๊ฒ:
- ์คํจํ ๋ฐ์ดํฐ ์ผํฐ์ ํ์ฌ ๋ง์คํฐ๊ฐ ์๋ ๊ฒฝ์ฐ ๋ค์ ์ ํ๋์ด ๋ค๋ฅธ DC์ ๋ค๋ฅธ ๋ ธ๋๋ก ์ญํ ๋ก ์ด๋๋ฉ๋๋ค.
- ๋ง์คํฐ๋ ํด๋ฌ์คํฐ์์ ์ก์ธ์คํ ์ ์๋ ๋ชจ๋ ๋ ธ๋๋ฅผ ์ ์ํ๊ฒ ์ ๊ฑฐํฉ๋๋ค.
- ๋๋จธ์ง ๋ฐ์ดํฐ ์ผํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ทธ๋ ์์ค๋ ๋ฐ์ดํฐ ์ผํฐ์ ์ด๋ฌํ ์ฃผ์ ์ค๋๊ฐ ์์๊ณ ๋๋จธ์ง ๋ฐ์ดํฐ ์ผํฐ์์ ๋ณด์์ ์ธ ๋ณต์ ๋ณธ ์ค๋๋ฅผ ์ ์ํ๊ฒ ์น๊ฒฉํ๊ณ ๋ฐ์ดํฐ ์ธ๋ฑ์ฑ์ ๊ณ์ํ ๊ฒ์ด๋ผ๋ ์ ์ ์ดํดํ ๊ฒ์ ๋๋ค.
- ๊ฒฐ๊ณผ์ ์ผ๋ก ํด๋ฌ์คํฐ์ ์ฐ๊ธฐ ๋ฐ ์ฝ๊ธฐ ์ฒ๋ฆฌ๋์ ์ ์ฐจ ์ ํ๋์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ด ๋๋ฆฌ์ง๋ง ์์ ์ ์ผ๋ก ์๋ํฉ๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์ํ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ๋ค์์ ์ป์์ต๋๋ค:
์ด๋ป๊ฒ ๋๊ฑฐ์ผ?
๋ฐ์ดํฐ ์ผํฐ๊ฐ ๋ฌด๋์ง์ ์ฐ๋ฆฌ ๋ง์คํฐ๊ฐ ๋ณ๋ชฉ ํ์์ ๊ฒช์์ต๋๋ค.
์ด์ ๋ ๋ฌด์์ ๋๊น?
์ฌ์ค ๋ง์คํฐ์๋ ํด๋ฌ์คํฐ์ ํน์ ์์ ๋ฐ ์ด๋ฒคํธ ๋ฐฐํฌ๋ฅผ ๋ด๋นํ๋ TaskBatcher๊ฐ ์์ต๋๋ค. ๋ชจ๋ ๋ ธ๋ ์ข ๋ฃ, ๋ณต์ ๋ณธ์์ ๊ธฐ๋ณธ์ผ๋ก์ ์ค๋ ์น๊ฒฉ, ์ด๋๊ฐ์ ์ค๋๋ฅผ ์์ฑํ๋ ๋ชจ๋ ์์ ๋ฑ์ด ๋ชจ๋ ๋จผ์ TaskBatcher๋ก ์ด๋ํ์ฌ ํ๋์ ์ค๋ ๋์์ ์์ฐจ์ ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
ํ๋์ ๋ฐ์ดํฐ ์ผํฐ๊ฐ ์ฒ ์๋ ๋น์, ๋จ์ ์๋ ๋ฐ์ดํฐ ์ผํฐ์ ๋ชจ๋ ๋ฐ์ดํฐ ๋ ธ๋๋ ๋ง์คํฐ์๊ฒ "์ฐ๋ฆฌ๋ ์ด๋ฐ ์ค๋์ ์ ๋ฐ ๋ฐ์ดํฐ ๋ ธ๋๋ฅผ ์์์ต๋๋ค"๋ผ๊ณ ์๋ฆฌ๋ ๊ฒ์ ์์ ์ ์๋ฌด๋ก ๊ฐ์ฃผํ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
๋์์, ์ด์๋จ์ ๋ฐ์ดํฐ ๋ ธ๋๋ ์ด ๋ชจ๋ ์ ๋ณด๋ฅผ ํ์ฌ ๋ง์คํฐ์๊ฒ ๋ณด๋ด๊ณ ๊ทธ๊ฐ ์ด๋ฅผ ์๋ฝํ๋ค๋ ํ์ธ์ ๊ธฐ๋ค๋ฆฌ๋ ค๊ณ ํ์ต๋๋ค. ์ฃผ์ธ์ด ๋๋ตํ ์ ์๋ ๊ฒ๋ณด๋ค ๋ ๋นจ๋ฆฌ ์์ ์ ๋ฐ์๊ธฐ ๋๋ฌธ์ ๊ทธ๋ค์ ์ด๊ฒ์ ๊ธฐ๋ค๋ฆฌ์ง ์์์ต๋๋ค. ๋ ธ๋๋ ๋ฐ๋ณต๋๋ ์์ฒญ ์๊ฐ์ ์ด๊ณผํ์ผ๋ฉฐ ์ด๋ ๋ง์คํฐ๋ ์๋ต์ ์๋์กฐ์ฐจํ์ง ์๊ณ ์ฐ์ ์์์ ๋ฐ๋ผ ์์ฒญ์ ์ ๋ ฌํ๋ ์์ ์ ์์ ํ ๋ชฐ๋ํ์ต๋๋ค.
ํฐ๋ฏธ๋ ํํ์์๋ ๋ฐ์ดํฐ ๋ ธ๋๊ฐ ์ ์ฒด GC๋ก ์ด๋ํ๋ ์ง์ ๊น์ง ๋ง์คํฐ์ ์คํธ์ ๋ณด๋ธ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ๊ทธ ํ ์ฐ๋ฆฌ์ ๋ง์คํฐ ์ญํ ์ ๋ค์ ๋ ธ๋๋ก ์ด๋ํ๊ณ ์์ ํ ๋์ผํ ์ผ์ด ๋ฐ์ํ์ผ๋ฉฐ ๊ฒฐ๊ณผ์ ์ผ๋ก ํด๋ฌ์คํฐ๊ฐ ์์ ํ ๋ถ๊ดด๋์์ต๋๋ค.
์ธก์ ๊ฒฐ๊ณผ, ์ด ๋ฌธ์ ๊ฐ ์์ ๋ ๋ฒ์ 6.4.0 ์ด์ ์๋ ํด๋ฌ์คํฐ๋ฅผ ์์ ํ ์ข ๋ฃํ๋ ค๋ฉด 10๊ฐ ์ค 360๊ฐ์ ๋ฐ์ดํฐ ๋ ธ๋๋ง ๋์์ ์ถ๋ ฅํ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํ์ต๋๋ค.
๊ทธ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ด ๋ณด์์ต๋๋ค:
์ด ๋์ฐํ ๋ฒ๊ทธ๊ฐ ์์ ๋ ๋ฒ์ 6.4.0 ์ดํ์๋ ๋ฐ์ดํฐ ๋ ธ๋๊ฐ ๋ง์คํฐ ์ข ๋ฃ๋ฅผ ์ค๋จํ์ต๋๋ค. ํ์ง๋ง ๊ทธ๊ฒ์ด ๊ทธ๋ฅผ "๋ ๋๋ํ๊ฒ" ๋ง๋ค์ง๋ ๋ชปํ์ต๋๋ค. ์ฆ, 2๊ฐ, 3๊ฐ ๋๋ 10๊ฐ(XNUMX๊ฐ ์ด์ธ์ ๋ชจ๋ ์)์ ๋ฐ์ดํฐ ๋ ธ๋๋ฅผ ์ถ๋ ฅํ๋ฉด ๋ง์คํฐ๋ ๋ ธ๋ A๊ฐ ๋ ๋ฌ๋ค๋ ์ฒซ ๋ฒ์งธ ๋ฉ์์ง๋ฅผ ์์ ํ๊ณ ๋ ธ๋ B, ๋ ธ๋ C, ๋ ธ๋ D์ ์ด์ ๋ํด ์๋ฆฌ๋ ค๊ณ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ํ์ฌ ์ด ๋ฌธ์ ๋ ๋๊ตฐ๊ฐ์๊ฒ ๋ฌด์ธ๊ฐ๋ฅผ ์๋ฆฌ๋ ค๋ ์๋์ ๋ํด ์ฝ 20-30์ด์ ์๊ฐ ์ด๊ณผ๋ฅผ ์ค์ ํ์ฌ ํด๋ฌ์คํฐ ๋ฐ์ผ๋ก ์ด๋ํ๋ ๋ฐ์ดํฐ ์ผํฐ์ ์๋๋ฅผ ์ ์ดํจ์ผ๋ก์จ๋ง ์ฒ๋ฆฌ๋ ์ ์์ต๋๋ค.
์์น์ ์ผ๋ก ์ด๋ ํ๋ก์ ํธ์ ์ผ๋ถ๋ก ์ต์ข ์ ํ์ ์ฒ์ ์ ์๋ ์๊ตฌ ์ฌํญ์ ๋ถํฉํ์ง๋ง "์์ ๊ณผํ"์ ๊ด์ ์์ ๋ณด๋ฉด ์ด๋ ๋ฒ๊ทธ์ ๋๋ค. ๊ทธ๊ฑด ๊ทธ๋ ๊ณ , ๋ฒ์ 7.2์์ ๊ฐ๋ฐ์๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์์ ํ์ต๋๋ค.
๋์ฑ์ด, ํน์ ๋ฐ์ดํฐ ๋ ธ๋๊ฐ ๋๊ฐ๋ฉด, ๊ทธ ์ถ๊ตฌ์ ๋ํ ์ ๋ณด๋ฅผ ์ ํํ๋ ๊ฒ์ด ์ ์ฒด ํด๋ฌ์คํฐ์ ๊ทธ๋ฌํ ๊ธฐ๋ณธ ์ค๋๊ฐ ์๋ค๊ณ ์๋ฆฌ๋ ๊ฒ๋ณด๋ค ๋ ์ค์ํ๋ค๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค(๋ค๋ฅธ ๋ฐ์ดํฐ์์ ๋ณต์ ๋ณธ ์ค๋๋ฅผ ์น๊ฒฉ์ํค๊ธฐ ์ํด). ๊ธฐ๋ณธ ์ผํฐ์ ์ ๋ณด๊ฐ ๊ธฐ๋ก๋ ์ ์์ต๋๋ค).
๋ฐ๋ผ์ ๋ชจ๋ ๊ฒ์ด ์ด๋ฏธ ์ค๋จ๋ ๊ฒฝ์ฐ ๋ฆด๋ฆฌ์ค๋ ๋ฐ์ดํฐ ๋
ธ๋๋ ์ฆ์ ์ค๋๋ ๊ฒ์ผ๋ก ํ์๋์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ํด์ ๋ ๋ฐ์ดํฐ ๋
ธ๋์ ๋ํ ๋ชจ๋ ํ ์๊ฐ์ด ์ด๊ณผ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ๋ฉฐ, ๊ทธ ํ์์ผ ํด๋ฌ์คํฐ๊ฐ ์ ๋ณด ๊ธฐ๋ก์ ๊ณ์ํด์ผ ํ๋ค๊ณ ์๋ ค์ฃผ๊ธฐ ์์ํฉ๋๋ค. ์ด์ ๋ํด ๋ ์์ธํ ์ฝ์ ์ ์์ต๋๋ค.
๊ทธ ๊ฒฐ๊ณผ ์ค๋ ๋ฐ์ดํฐ์ผํฐ ์ฒ ์ ์์ ์ ์ถํด๊ทผ ์๊ฐ์ 5๋ถ ์ ๋ ์์๋๋ค. ๊ทธ๋ ๊ฒ ํฌ๊ณ ์ํฌ๋ฅธ ๊ฑฐ์์๊ฒ๋ ์ด๊ฒ์ ๊ฝค ์ข์ ๊ฒฐ๊ณผ์ ๋๋ค.
๊ทธ ๊ฒฐ๊ณผ, ์ฐ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ์ ์ ๋ด๋ ธ์ต๋๋ค.
- ์ฐ๋ฆฌ๋ 360GB ๋์คํฌ๋ฅผ ๊ฐ์ถ 700๊ฐ์ ๋ฐ์ดํฐ ๋ ธ๋๋ฅผ ๋ณด์ ํ๊ณ ์์ต๋๋ค.
- ๋์ผํ ๋ฐ์ดํฐ ๋ ธ๋๋ฅผ ํตํด ํธ๋ํฝ์ ๋ผ์ฐํ ํ๊ธฐ ์ํ 60๊ฐ์ ์ฝ๋๋ค์ดํฐ.
- 40 ์ด์ ๋ฒ์ ๋ถํฐ ์ผ์ข ์ ์ ์ฐ์ผ๋ก ๋จ๊ฒจ๋ ๋ง์คํฐ 6.4.0๊ฐ - ๋ฐ์ดํฐ์ผํฐ ์ฒ ์์๋ ์ด์๋จ๊ธฐ ์ํด, ๋ง์คํฐ ์ ์กฑ์ ํ๋ณด๋ฅผ ์ํด ๋ช ๋์ ๋จธ์ ์ ์์ ์๋ ์๋ค๋ ์ ์ ์ ์ค๋น๊ฐ ๋์ด ์์๋ค. ์ต์ ์ ์๋๋ฆฌ์ค
- ํ๋์ ์ปจํ ์ด๋์์ ์ญํ ์ ๊ฒฐํฉํ๋ ค๋ ๋ชจ๋ ์๋๋ ์กฐ๋ง๊ฐ ๋ ธ๋๊ฐ ๋ถํ๋ก ์ธํด ์ค๋จ๋๋ค๋ ์ฌ์ค์ ์ง๋ฉดํ์ต๋๋ค.
- ์ ์ฒด ํด๋ฌ์คํฐ๋ 31GB์ heap.size๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ค๋ ๋ชจ๋ ์๋๋ ์์ ์์ผ๋์นด๋๋ฅผ ์ฌ์ฉํ ๊ณผ๋ํ ๊ฒ์ ์ฟผ๋ฆฌ์์ ์ผ๋ถ ๋ ธ๋๋ฅผ ์ข ๋ฃํ๊ฑฐ๋ Elasticsearch ์์ฒด์์ ํ๋ก ์ฐจ๋จ๊ธฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์์ต๋๋ค.
- ๋ํ ๊ฒ์ ์ฑ๋ฅ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ง์คํฐ์์ ๋ฐ์ํ๋ ๋ณ๋ชฉ ํ์์์ ๊ฐ๋ฅํ ์ ์ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ํด๋ฌ์คํฐ์ ๊ฐ์ฒด ์๋ฅผ ๊ฐ๋ฅํ ํ ์ ๊ฒ ์ ์งํ๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก ๋ชจ๋ํฐ๋ง์ ๋ํด
์ด ๋ชจ๋ ๊ฒ์ด ์๋ํ ๋๋ก ์๋ํ๋์ง ํ์ธํ๊ธฐ ์ํด ์ฐ๋ฆฌ๋ ๋ค์์ ๋ชจ๋ํฐ๋งํฉ๋๋ค.
- ๊ฐ ๋ฐ์ดํฐ ๋ ธ๋๋ ํด๋ผ์ฐ๋์ ์์ ์ด ์กด์ฌํ๋ฉฐ ๊ทธ๋ฌํ ์ค๋๊ฐ ์์์ ๋ณด๊ณ ํฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ์ด๋๊ฐ์์ ๋ฌด์ธ๊ฐ๋ฅผ ๋๋ฉด ํด๋ฌ์คํฐ๋ 2~3์ด ํ์ ์ผํฐ A์์ ๋ ธ๋ 2, 3, 4๋ฅผ ๋์๋ค๊ณ ๋ณด๊ณ ํฉ๋๋ค. ์ด๋ ๋ค๋ฅธ ๋ฐ์ดํฐ ์ผํฐ์์๋ ์ด๋ค ์ํฉ์์๋ ์ค๋๊ฐ ํ๋๋ง ์๋ ๋ ธ๋๋ฅผ ๋ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ผ์ชฝ.
- ๋ง์คํฐ ํ๋์ ์ฑ๊ฒฉ์ ์๋ฉด์ ์ฐ๋ฆฌ๋ ๋๊ธฐ ์ค์ธ ์์ ์ ์๋ฅผ ๋งค์ฐ ์ฃผ์ ๊น๊ฒ ์ดํด๋ด ๋๋ค. ํ๋์ ๋ฉ์ถ ์์ ์ด๋ผ๋ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ์ง ์์ผ๋ฉด ์ด๋ก ์ ์ผ๋ก ์ผ๋ถ ๊ธด๊ธ ์ํฉ์์๋ ์๋ฅผ ๋ค์ด ๊ธฐ๋ณธ ๋ณต์ ๋ณธ์ ๋ณต์ ๋ณธ ์ค๋ ์น๊ฒฉ์ด ์๋ํ์ง ์์ ์ธ๋ฑ์ฑ ์๋์ด ์ค์ง๋ ์ ์์ต๋๋ค.
- ๋ํ ์ต์ ํ ๊ณผ์ ์์ ์ด๋ฏธ ํฐ ์ด๋ ค์์ ๊ฒช์๊ธฐ ๋๋ฌธ์ ๊ฐ๋น์ง ์์ง๊ธฐ ์ง์ฐ๋ ๋งค์ฐ ์์ธํ ์ดํด๋ด ๋๋ค.
- ๋ณ๋ชฉ ํ์์ด ๋ฐ์ํ๋ ์์น๋ฅผ ๋ฏธ๋ฆฌ ํ์ ํ๊ธฐ ์ํด ์ค๋ ๋๋ณ๋ก ๊ฑฐ๋ถํฉ๋๋ค.
- ํ, RAM, I/O์ ๊ฐ์ ํ์ค ๋ฉํธ๋ฆญ์ ๋๋ค.
๋ชจ๋ํฐ๋ง์ ๊ตฌ์ถํ ๋ Elasticsearch์ ์ค๋ ๋ ํ ๊ธฐ๋ฅ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก ๋งํ๊ณ ์ถ์ ๊ฒ์: ์ฐ๋ฆฌ๊ฐ ํด๋๋ค! ์ฐ๋ฆฌ๋ ํ๋ก๊ทธ๋๋จธ์ ๊ฐ๋ฐ์์๊ฒ ๊ฑฐ์ ๋ชจ๋ ์ํฉ์์ ํ๋ก๋์ ์์ ์ผ์ด๋๋ ์ผ์ ๋ํ ์ ๋ณด๋ฅผ ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ์ ๊ณตํ ์ ์๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํ ์ ์์์ต๋๋ค.
์, ๊ฝค ๋ณต์กํ ๊ฒ์ผ๋ก ํ๋ช ๋์์ง๋ง ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ฐ๋ฆฌ๋ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ์ ๊ธฐ์กด ์ ํ์ ์ ์ฉํ ์ ์์๊ธฐ ๋๋ฌธ์ ํจ์นํ๊ณ ๋ค์ ์์ฑํ ํ์๊ฐ ์์์ต๋๋ค.
์ถ์ฒ : habr.com