์ฐ๋ฆฌ ํ๋ก์ ํธ๋ ๋๊ฐ ์ง์ญ์ ์ด๋ฉฐ ํด๋ผ์ด์ธํธ๋ ๋๊ฐ ์ฌ์ญ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊ณต๊ณต ๋ถ๋ฌธ ์ธ์๋ ๋ฏผ๊ฐ ์กฐ์ง์์๋ ์ฐ๋ฆฌ ์์คํ ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ค์ ๋ก๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ฐ๋ผ์ ์ฃผ์ ํ๋ก์ ํธ๋ ์ง์ญ์ ์ด๋ฉฐ ๋๋ก๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ฑ๋ฅ์ ๊ฒฝ์ฐ ์ ํ ์๋ฒ์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ์ํ๋ ๊ธฐ๊ฐ ๋์ ์ง์ญ์ ์์คํ ์ฌ์ฉ์๊ฐ 20๋ช ์ด ๋์ต๋๋ค. ๊ทธ๊ฒ์ ๊ณ ํต์ด๋คโฆ
์ ์ด๋ฆ์ Ruslan์ด๊ณ BARS ๊ทธ๋ฃน์ ์ ๋ณด ์์คํ ์ ์ง์ํ๋ฉฐ ํญ๋ ฅ์ ์ธ ์ฐ์ DBA๋ฅผ ์ํ ํฌ๋ฌ๋ด ๊ฐ๋ฐ. ์ด ๊ฒ์๋ฌผ์ ๋ง์์ด ์ฝํ ์ฌ๋๋ค์ ์ํ ๊ฒ์ด ์๋๋๋ค. ๋ง์ ํธ์ง์ ๊ทธ๋ฆผ์ด ์์ต๋๋ค.
/awr
์ผ๋ถ ์ ํ๋ฆฌ์ผ์ด์ ์ Oracle DBMS์์ ์คํ๋ฉ๋๋ค. PostgreSQL DBMS์๋ ํ๋ก์ ํธ๊ฐ ์์ต๋๋ค. ์ค๋ผํด์ DBMS์ ๋ก๋์ ๋ํ ํต๊ณ๋ฅผ ์์งํ์ฌ ๊ธฐ์กด ๋ฌธ์ ๋ฅผ ๊ฐ์กฐํ๊ณ ์ ๊ฑฐ๋ฅผ ์ํ ๊ถ์ฅ ์ฌํญ์ ์ ์ํ๋ AWR(์๋ ์์ ๋ก๋ ์ ์ฅ์)์ด๋ผ๋ ๋๋ผ์ด ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ด๋ ์์ (์ฆ, ๊ณ ํต์ ์๊ฐ)์ ๊ฐ๋ฐ์๋ค์ ๋์์์ด ์์ง์ ์์ฒญํ์ต๋๋ค. ์ฑ๋ฅ ๋ถ์์ ์ํ AWR ๋ณด๊ณ ์. ์ฐ๋ฆฌ๋ ์ ์งํ๊ฒ DBMS ์๋ฒ์ ๊ฐ์ ๋ณด๊ณ ์๋ฅผ ์์งํ๊ณ ์ฐ๋ฆฌ์๊ฒ ๊ฐ์ ธ๊ฐ ๋ถ์์ ์ํด ํ๋ก๋์ ์ผ๋ก ๋ณด๋์ต๋๋ค. 5๋ฒ๋ถํฐ๋ ์ง์ฆ๋๊ณ ... 10๋ฒ๋ถํฐ๋ ์ง์ฆ๋๊ณ ...
๋ด ๋๋ฃ ์ค ํ ๋ช ์ด ํ ๋ฒ ์ด์ ์ํ๋๋ ๋ชจ๋ ์์ ์ ์๋ํ๋์ด์ผ ํ๋ค๋ ์๊ฐ์ ํํํ ์ ์ด ์์ต๋๋ค. ์์งํ ๋งํด์ ์ง์ฆ๋๋ ์๊ฐ๊น์ง ๊ทธ๊ฒ์ ๋ํด ์๊ฐํ์ง ์๊ณ ์๋ํํ ์ ์๋ ๋ชจ๋ ๊ฒ์ ์๋ํํ๋ ค๊ณ ๋ ธ๋ ฅํ์ง๋ง ์ข ์ข ์์๊ฐ ์์๊ณ ์์ฉ ์ฑ๊ฒฉ๋ณด๋ค๋ ์ฐ๊ตฌ์ ๋ ๊ฐ๊น์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋๋ ์ด๋ ๊ฒ ์๊ฐํ์ต๋๋ค. "๋ณด๊ณ ์๋ฅผ ์์ฑํ๋ ๋ฐ ๊ด๋ฆฌ์๋ ํ์ํ์ง ์์ต๋๋ค...". ๊ฒฐ๊ตญ ๋ณด๊ณ ์๋ฅผ ์์งํ๋ค๋ ๊ฒ์ SQL ์คํฌ๋ฆฝํธ @$ORACLE_HOME/rdbms/admin/awrrpt.sql์ ์คํํ๊ณ ์๋ฒ์์ ๋ณด๊ณ ์๋ฅผ ์ฌ์ฉ์ ์์น๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค... ์ ์, ํ๋ก๋์ ์ฉ ๊ฐ๋ฐ์ ํ์ฉ๋์ง ์์ต๋๋ค.
๊ทธ๋ฐ ๋ค์ ํ์ํ ์ ๋ณด๋ฅผ ๊ฒ์ํ๊ณ , ํ ์คํธ ๊ธฐ๋ฐ์ ๊ธฐ์ฌ์์ ํจ์๋ฅผ ์์ฑํ๊ณ , ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๊ณ ๊ธฐ์ ์ ์ผ์ผ์ผฐ์ต๋๋ค. ๋ณด๊ณ ์๊ฐ ์ปดํ์ผ๋์ด ๋ก์ปฌ์ ์ ์ฅ๋ ์ ์์ต๋๋ค. AWR ๋ณด๊ณ ์๊ฐ ์์ฃผ ํ์ํ ๊ธฐ๋ฅ์ ๋ง๋ค๊ณ ๊ฐ๋ฐ์์๊ฒ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์๋ ค์ฃผ์์ต๋๋ค.
์ด ๋ฌด๋ ต, ์ฌ๊ฐ ์๊ฐ์ @BotFather์ ์ด์ผ๊ธฐ๋ฅผ ๋๋ ํ ์ ๋ ๋จ์ง ์ฌ๋ฏธ๋ก ํ ๋ ๊ทธ๋จ ๋ด์ ๋ง๋ค์์ต๋๋ค. ๋๋ ๊ฑฐ๊ธฐ์ ๊ฐ๋จํ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. ํ์ฌ ์๊ฐ, ํ์จ, ๋ ์จ๋ฅผ ํ์ํ๊ณ ์ผ์ ์ ๋ฐ๋ผ ์๋ด (๋น์ ์ฌ์ ์น๊ตฌ)์๊ฒ ์นญ์ฐฌ์ ๋ณด๋ด๋ ๋ฐฉ๋ฒ์ ๊ฐ๋ฅด์ณค์ต๋๋ค. ์๋ง๋ ๊ทธ ๋น์์๋ ์นญ์ฐฌ์ ๋ณด๋ด๋ ๊ฒ์ด ๋ด ๋ด์ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๊ธฐ๋ฅ์ด์๊ณ ์๋ด๋ ์ด๋ฅผ ๋์ด ํ๊ฐํ์ ๊ฒ์ ๋๋ค.
๊ทธ๋์. ๊ฐ๋ฐ์๋ ํ ๋ ๊ทธ๋จ์ผ๋ก ์ฐ๋ฆฌ์๊ฒ ํธ์ง๋ฅผ ์ฐ๊ณ , ์ฐ๋ฆฌ๋ ํ ๋ ๊ทธ๋จ์ผ๋ก ๊ทธ๋ค์๊ฒ ๋ณด๊ณ ์๋ฅผ ๋ณด๋ ๋๋ค... ๊ทธ๋ค์ด ์ฐ๋ฆฌ์๊ฒ ํธ์ง๋ฅผ ์ฐ์ง ์๊ณ ๋ด์๊ฒ ํธ์ง๋ฅผ ์ด๋ค๋ฉด ์ด๋ป๊ฒ ๋ ๊น์? ๊ฒฐ๊ตญ ๋ชจ๋ ์ฌ๋์๊ฒ ๋ ์ข์ ๊ฒ์ด๋ฉฐ ๋ณด๊ณ ์๋ ๋ ๋นจ๋ฆฌ ์์ ๋ ๊ฒ์ด๋ฉฐ ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ฐ๋ฆฌ๋ฅผ ์ฐํํ๋ค๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ๋ด ๋ด์ ์ฒซ ๋ฒ์งธ ์ธ๊ธฐ ๊ธฐ๋ฅ์ ๋ํ ์์ด๋์ด๊ฐ ํ์ํ ๋ฐฉ๋ฒ์ ๋๋ค.
๊ตฌํ์ ์์ํ์ต๋๋ค. ์ ๋ ์ต์ ์ ๋คํด PHP๋ก ๊ทธ ์ผ์ ํ์ต๋๋ค. (์ฐ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์์ฒด๋ PHP์ ์๊ณ , ์ ๋ Python๋ณด๋ค PHP์ ๋ ์ ํตํฉ๋๋ค.) ์ ๋ ์ฝ๋ฉ์ ์ ๋ชปํ๋ ํธ์ด๋ผ ์ฝ๋๋ ๋ณด์ฌ๋๋ฆฌ์ง ์๊ฒ ์ต๋๋ค :)
๋ด์ ํ์ฌ ๋คํธ์ํฌ์ ์์ฃผํ๋ฉฐ ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํฌํจํ ํน์ ํ๋ก์ ํธ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ํ์ด๋ ๋ฉ๋ด์ ๋งค๊ฐ ๋ณ์์ ์ ๊ฒฝ ์ฐ์ง ์๊ธฐ ์ํด ๋ชจ๋ํฐ๋ง ์๋ฆผ๊ณผ ํจ๊ป ๊ทธ๋ฃน ์ฑํ ์ ์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ด์ ์ด๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ณด๊ณ ์๋ฅผ ์์งํ ์ง ์ฆ์ ์ ์ ์์ต๋๋ค.
๋ค์๊ณผ ๊ฐ์ ๋ช ๋ น์ ๋ฐ์์ ๋ /awr N์ฌ๊ธฐ์ N์ ๋ณด๊ณ ์๊ฐ ํ์ํ ์ ์ฒด ์๊ฐ(๊ธฐ๋ณธ์ ์ผ๋ก 1์๊ฐ)์ ๋๋ค. ์ผ์ฃผ์ผ ๋์์ด๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ค์ ์์๋์ง ์์ ๊ฒฝ์ฐ ๋ด์ ์ฆ์ ์์ ์ ์์ํ๊ณ ๋ณด๊ณ ์๋ฅผ ์์งํ์ฌ ์น ํ์ด์ง๋ฅผ ๋ฐฉ๋ฌธํ๋ฉด ์ฆ์(๊ฑฐ์ ๋ฐ๋ก ๊ฑฐ๊ธฐ) ๊ผญ ํ์ํ ๋ณด๊ณ ์์ ๋ํ ๋งํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋งํฌ๋ฅผ ๋ฐ๋ผ๊ฐ๋ฉด AWR ๋ณด๊ณ ์๊ฐ ์์ต๋๋ค.
์์๋๋ก ๊ฐ๋ฐ์๋ค์ ์ด๋ฌํ ๋ณด๊ณ ์ ์์ฑ์ ๋์ฒํ๊ณ ์ผ๋ถ๋ ์ฐ๋ฆฌ์๊ฒ ๊ฐ์ฌ๋ฅผ ํํ๊ธฐ๋ ํ์ต๋๋ค.
ํ์ ํธ๋ฆฌํจ์ ๋์ด ํ๊ฐํ ๋ค๋ฅธ ์ง์ญ์ ํ๋ก์ ํธ ๊ด๋ฆฌ์๋ ๊ณ ๊ฐ์ผ๋ก๋ถํฐ ๊ฐ์ฅ ๋ง์ ๊ฒ์ ๋ฐ๊ณ ์์คํ ์ ์ฑ๋ฅ๊ณผ ๊ฐ์ฉ์ฑ์ ๋ํด ๊ฑฑ์ ํ๊ธฐ ๋๋ฌธ์ ๋์ผํ ๊ฒ์ ์ํ์ต๋๋ค. ๋ค๋ฅธ ์ฑํ ์ ๋ด์ ์ถ๊ฐํ์ต๋๋ค. ๊ทธ๋ค์ ์์ง๋ ๊ทธ๊ฒ์ ์ฌ์ฉํ๊ณ ์๊ณ ๋๋ ๊ทธ๊ฒ์ ๋ํด ๊ธฐ์ฉ๋๋ค.
๋์ค์ CIT์ ๋๋ฃ๋ค๋ ์ฐ๋ฆฌ๊ฐ ๋ณด๊ณ ์๋ฅผ ์์งํ๋ ๋ฐฉ๋ฒ์ ์๊ฒ ๋์๊ณ ๊ทธ๋ ๊ฒ ํ๊ณ ์ถ์ดํ์ต๋๋ค. ๋๋ ์ฑํ ์ ์ถ๊ฐํ์ง ์์๊ณ ์ผ์ ๊ณผ ์์ฒญ์ ๋ฐ๋ผ ๋ณด๊ณ ์ ์์ฑ๊ณผ ๋ณ๋์ ์ฑํ ์ ๋ง๋ค์์ต๋๋ค.
/pgBadger
PostgreSQL๊ณผ ํจ๊ป PHP๋ก ๋ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ๋ ์์ต๋๋ค. ๋๋ ๊ทธ๋ฃน ์ฑํ ์์ ๋์ผํ ์์น์ ์ฌ์ฉํ์ฌ ๋์์ด ํ์ํ ์ฌ๋๋ค์ ์ํ pgBadger ๋ณด๊ณ ์ ๋ชจ์์ ๊ตฌํํ์ต๋๋ค. ์ฒ์์๋ ์ฌ์ฉํ๋ค๊ฐ ์ค๋จ๋์์ต๋๋ค. ๋ถํ์ํ ๊ธฐ๋ฅ์ ์ญ์ ๋์์ต๋๋ค.
/์๋ฌด
์ฐ๋ฆฌ ๋ถ์์๋ ์ผ๊ฐ ๊ทผ๋ฌด๊ฐ ์์ผ๋ฏ๋ก ์ผ์ ์ด ์์ต๋๋ค. Google ์คํ๋ ๋์ํธ์ ์์ต๋๋ค. ๋งํฌ๋ฅผ ์ฐพ๊ณ , ์ฐจํธ๋ฅผ ์ด๊ณ , ์์ ์ ์ฐพ๋ ๊ฒ์ด ํญ์ ํธ๋ฆฌํ ๊ฒ์ ์๋๋๋ค... ์ด์ ๋๋ฃ ์ค ํ ๋ช ์ด ํ ๋ ๊ทธ๋จ ๋ด์ ๊ฐ์ง๊ณ ๋๋ฉด์ ์ฐ๋ฆฌ ๋ถ์ ์ฑํ ์ ์๊ฐํ์ต๋๋ค. ๋ถ์ ์ง์์ ๊ทผ๋ฌด ๊ต๋ ์์์ ๋ํ ์๋ฆผ. ๋ด์ ์ผ์ ์ ๋ถ์ํ๊ณ ํ์ฌ ๋ ์ง๊น์ง ๊ทผ๋ฌด์๋ฅผ ๊ฒฐ์ ํ๋ฉฐ ์ผ์ ์ ๋ฐ๋ผ ๋๋ ์์ฒญ ์ ์ค๋ ๊ทผ๋ฌด์๊ฐ ๋๊ตฌ์ธ์ง ๋ณด๊ณ ํฉ๋๋ค. ํ๋ฅญํ๊ณ ํธ๋ฆฌํ์ต๋๋ค. ์ฌ์ค, ๋ฉ์์ง ํ์์ด ๋ณ๋ก ๋ง์์ ๋ค์ง ์์์ต๋๋ค. ๋ํ ๋ค๋ฅธ ๋ถ์(์: BC "Medicine")์ ์ง์์ ๊ฒฝ์ฐ ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก ๊ทผ๋ฌดํ๋ ์ฌ๋์ ๋ํ ์ ๋ณด๋ ์ค์ ๋ก ํ์ํ์ง ์์ง๋ง ๋ฌธ์ ๊ฐ ์๋ ๊ฒฝ์ฐ "Medicine"์์ ๊ทผ๋ฌดํ๋ ์ฌ๋์ด ๋๊ตฌ์ธ์ง ์์์ผ ํฉ๋๋ค. ๋๋ ๊ธฐ๋ฅ์ "์ฐจ์ฉ"ํ๊ธฐ๋ก ๊ฒฐ์ ํ์ง๋ง ๋ง์์ ๋ค์ง ์๋ ๋ถ๋ถ์ ๋ณ๊ฒฝํ์ต๋๋ค. ๋ถํ์ํ ์ ๋ณด๋ฅผ ์ ๊ฑฐํ๊ณ ๋ ์์ ๊ณผ ๋ค๋ฅธ ์ฌ๋๋ค์๊ฒ ํธ๋ฆฌํ ๋ฉ์์ง ํ์์ ๋ง๋ค์์ต๋๋ค.
/tnls
ํ ๋ ๊ทธ๋จ ๋ด์ ํ์ฉํด ์๋ํ๋ฅผ ์๋ํด๋ณด๋ ๋ค์ํ ์์ด๋์ด๊ฐ ๋์์ง๋ง ๊ผญ ํ์ํ ์ผ๋ง ํ๊ณ ์ถ์์ต๋๋ค. ๋๋ ๋ฆฌ๋ํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค ์์ฒญ์ ๋ํ ํต๊ณ. ๊ณ ๊ฐ์ ํ๋ก์ ํธ์ ์ก์ธ์คํ๊ธฐ ์ํด ์์ "์ ํ ์๋ฒ" ๋๋ ํฌ์๋ฉ ์๋ฒ๋ฅผ ๊ตฌํํ์ต๋๋ค. VPN ์ฐ๊ฒฐ์ด ์์ฑ๋ ๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ํฌํธ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ๊ธฐํ ๋ณด์กฐ ์ ๋ฌ์ด SSH๋ฅผ ํตํด ๋ก์ปฌ ๋คํธ์ํฌ๋ก ์ ๋ฌ๋๋ฏ๋ก VPN ์ฐ๊ฒฐ ๋ฌธ์ ์์ด ์ง์์ ํ๋ก์ ํธ์ ์ฝ๊ฒ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๊ทํ๊ฐ ํด์ผ ํ ์ผ์ ํ์ฌ ๋คํธ์ํฌ์ ๋ํ VPN ์ฐ๊ฒฐ์ ์ค์ ํ๋ ๊ฒ๋ฟ์ ๋๋ค.
์์ฒญ ํต๊ณ์ ๋ฐ๋ฅด๋ฉด ํฐ๋ ์ค ํ๋์ ์ฅ์ ๊ฐ ๋ฐ์ํ ํ(์: ์๊ฐ ์ด๊ณผ๋ก ์ธํด ๋คํธ์ํฌ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ) ์ฌ๋๋ค์ด ํ๋ก์ ํธ์ ๋ํ ์ก์ธ์ค ๋ณต์์ ๋ํด ๋ฌธ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ฐ๊ฒฐ์ ๋ค์ ์์ํ๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ๋ฉฐ ๋ชจ๋ ๊ฒ์ด ์ ์์
๋๋ค. ์ค์ค๋ก ํด๋ณด์. ๋ช
๋ น์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ํ๋ ๋ฉ๋ด ํญ๋ชฉ์ "๋ค์ด๊ฐ์" ํ๋ก์ ํธ๋ฅผ ์ ํํ๊ณ ์ ์ ๊ธฐ๋ค๋ฆฌ๋ฉด ๋ชจ๋๊ฐ ํ๋ณตํ๊ณ ๋ง์กฑํดํฉ๋๋ค...
๋ช ๋ น์ ์์ ํ๋ฉด ๋ฐ์ดํธ์ ๋นํธ๊ฐ ์ฝ๊ฐ ์ด๋ํ๋ฉด์ ๋ด์ ์ ๋ฌ ์๋ฒ์ ์ฐ๊ฒฐํ์ฌ ์ด๋ค ์ ๋ฌ์ ๋ค์ ์์ํด์ผ ํ๋์ง ๋ฏธ๋ฆฌ ์๊ณ ํด๋น ์์ ์ ์ํํฉ๋๋ค. ์ฆ, ํ๋ก์ ํธ์ ๋ํ ์ฐ๊ฒฐ์ ๋ณต์ํฉ๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ์ค์ค๋ก ํด๊ฒฐํ ์ ์๋๋ก ์ง์นจ์ ์์ฑํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๋๋ค์ ์ ๊ณต๋ ๋๊ตฌ๊ฐ ์๋ํ์ง ์๋ ๊ฒฝ์ฐ์๋ง ์ฐ๋ฆฌ์๊ฒ ์ฐ๋ฝํ์ต๋๋ค...
/ecp_to_pem
์ถ๊ฐ ํต๊ณ์ ๋ฐ๋ฅด๋ฉด ์ ํ์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. Pem ํ์์ EDS Crypto Pro(
Google์ด ๋ค์ ๊ตฌ์กฐ์ ๋์ฐ์ต๋๋ค. ์ค๋ฆฝํ๋ค
์ต์ข
๊ตฌํ ์์ ์ ์๋ก์ด ์ํธํ ํ์์ธ gost-2012๋ก ์ ํํ๋ผ๋ ๋ช
๋ น์ด ๋ด๋ ค์ก์ต๋๋ค. ๋ด๊ฐ ๊ธฐ์ตํ๋ ํ ๊ทธ ๋น์ ์ ํธ๋ฆฌํฐ๋ ์ด์ GOST (2001)์์๋ง ์๋ํ์ผ๋ฉฐ ์๋ง๋ ๋ค๋ฅธ ์น์ ํ ์ฌ๋์ ๋ ๋ค๋ฅธ ์ ์ฌํ ์ ํธ๋ฆฌํฐ ์์ ๊ฒ์
๋๋ค. ์ ํํ ๊ธฐ์ต์ด ๋์ง ์์ต๋๋ค.
์๋ก์ด GOST๋ก ์ ํํ ํ ๋ณด์์์ ์ด์ ๋ก ๋ด ๊ธฐ๋ฅ์ด ์ ๊ฑฐ๋์์ต๋๋ค. ๋์ปค ์ปจํ
์ด๋๋ก ๊ตฌํํ์ต๋๋ค.
Dockerfile(ํ์ํ ๊ฒฝ์ฐ๋ฅผ ๋๋นํด):
FROM ubuntu:16.04
RUN apt update && apt -y install git sudo wget unzip gcc g++ make &&
cd /srv/ && git clone https://github.com/kov-serg/get-cpcert.git &&
cd get-cpcert && chmod +x *.sh && ./prepare.sh && ./build.sh &&
mkdir -p /srv/{in,out} &&
echo '#!/bin/bash' > /srv/getpem.sh &&
echo 'cd /srv/get-cpcert' >> /srv/getpem.sh &&
echo './get-cpcert /srv/in/$CONT.000 $PASS > /srv/out/$CONT.pem' >> /srv/getpem.sh &&
chmod +x /srv/getpem.sh ENTRYPOINT /srv/getpem.sh
๋ณํํ๋ ค๋ฉด ์๋ณธ ์ปจํ ์ด๋(xxx.000๊ณผ ๊ฐ์ ๋๋ ํฐ๋ฆฌ)๋ฅผ /srv/in ๋๋ ํฐ๋ฆฌ์ ๋ฐฐ์นํ๊ณ ์์ฑ๋ pem์ /srv/out์ผ๋ก ๊ฐ์ ธ์์ผ ํฉ๋๋ค.
๋ณํํ๋ค:
docker run -t -i -e CONT='<ะธะผั ะดะธัะตะบัะพัะธะธ ั ะบะพะฝัะตะนะฝะตัะพะผ(ะฑะตะท ".000")>' -e PASS='<ะฟะฐัะพะปั ะดะปั ะบะพะฝัะตะนะฝะตัะฐ>' -v /srv/in:/srv/in -v /srv/out:/srv/out --name ecptopem <ะฐะดัะตั ะฝะฐัะตะณะพ ัะตะฟะพะทะธัะพัะธั>/med/ecptopem:latest
/emstop ๋ฐ /emstart
์ด๋ ๋ , DBMS ๊ด๋ฆฌ ๋ฐ ๊ฐ๋ฐ ๊ฒฝํ์ด ํ๋ถํ ์์ฃผ ๋ฉ์ง Oracle DBA๊ฐ ์ฐ๋ฆฌ ํ์ฌ์ ์ ์ฌํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฆ์ ssh๋ฅผ ์ฌ์ฉํ์ฌ DBMS ์๋ฒ์ ์ฐ๊ฒฐํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ด๋์ ์ด๋ป๊ฒ ์ฐ๊ฒฐํด์ผ ํ ์ง ๋ชจ๋ฅด๊ฑฐ๋, ์ก์ธ์ค ๋ฐฉ๋ฒ์ด ๋ช ํํ๊ฒ ์ค๋ช ๋์ง ์์๊ฑฐ๋, ํ์ํ ๋ด์ฉ์ ์์ ์๊ฒ ์ ๋ฌํ ์ ์์์ต๋๋ค. ์ ํฌ๋ ๊ธฐ๊บผ์ด ๋์๋๋ฆฌ๊ณ ๊ทธ์๊ฒ ์ฐ๊ฒฐ ๋ฐฉ๋ฒ์ ์๋ ค์ฃผ๊ณ Enterprise Manager๋ฅผ ์ ๋ฌํ์ต๋๋ค. ํ์ง๋ง ์ฌ์ ํ ssh์์๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์์ต๋๋ค. ๋ด ๋๋ฃ ์ค ํ ๋ช ์ด ์์ข DBA๋ผ๊ณ ๊ฐ๋จํ๊ฒ ์ค๋ช ํ์ต๋๋ค. :) ์๋ฒ์์ ๋ญ๊ฐ๋ฅผ ์กฐ์ ํด์ผ ํ ๊ฒฝ์ฐ ์ง์ ์ํํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
EM์ ๊ฐ๋ ๊ณผ๋ถํ๋ก ์ธํด ์ถฉ๋์ด ๋ฐ์ํ๋๋ฐ, ๋ค์ ์์ํ๋ ค๋ฉด... SSH๋ก ์ฐ๊ฒฐํ๊ณ ํฐ๋ฏธ๋์ ํตํด ๋ค์ ์์ํด์ผ ํฉ๋๋ค. โ๊ด๋ฆฌ์๋ค์ ์ด ์ผ์ ์ํฉ๋๋ค.โ๋ผ๊ณ ์๋ก์ด ๋๋ฃ๊ฐ ๊ฒฐ์ ํ์ต๋๋ค. DBMS์ ๋ํ ๊ณผ๋ํ ๋ก๋๋ ๋๋ฌธ ์ผ์ด ์๋๋ฉฐ EM์ ๋ค์ ์์ํ๋ผ๋ ์์ฒญ๋ ์ผ๋ฐ์ ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๋์ผํ ์๋๋ฆฌ์ค๊ฐ ๋ฐ์ํฉ๋๋ค. ๊ธด์ฅ, ์ง์ฆ, ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ฐพ๊ธฐ. ๋ฐ๋ผ์ ๋์ผํ ๊ทธ๋ฃน ์ฑํ ์์ ๋ค์ ๋ช ๋ น์ด ๋ํ๋ฌ์ต๋๋ค. /emstop ๋ฐ /emstart.
/์ฃฝ์
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๊ฒฝ์์ด ์ฌํ๊ณ ๊ฐ๋ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋น ๋ฅด๊ฒ ์ธ๋ก๋ํด์ผ ํฉ๋๋ค. ๊ฐ์ฅ ๋น ๋ฅธ ๋ฐฉ๋ฒ์ ๋ฌธ์ ๊ฐ ์๋ ํ๋ก์ธ์ค๋ฅผ ์ข ๋ฃํ๋ ๊ฒ์ ๋๋ค... ์ด๋ ๊ฒ ํ๋ ค๋ฉด SSH๋ฅผ ํตํด ์ฐ๊ฒฐํ๊ณ kill -9... ๋ด์ด ๋์์ด ๋ ๊ฒ์ ๋๋ค!
Alexey๋ ํ์ ๊ฐ์ฌํ๊ณ ์ ์ ์ด๋ฆฐ ์ด๋ฆ์ ๋ถ์ฌํ์ต๋๋ค. "ํฌ์์นด" ์๋๋ฉด ์ด.
์ด๋ ๋ Alexey๊ฐ ๊ฐ ํ๋ก์ธ์ค์ ๋ํด ๋งค๋ฒ /kill xxx๋ฅผ ์
๋ ฅํ๋ฉด์ ์ด๋ป๊ฒ ๋
ธ๋ ฅํ๊ณ ๊ณ ํต์ ๊ฒช๋์ง ๊ด์ฐฐํ ํ ์ด์ "๋ค์ค ๋ฐฐ๋ด"์ ์ถ๊ฐํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
๊ทธ๊ฒ ๋ซ๋ค! ๋ชจ๋ ๊ฒ์ด ๋น์ ์์ํ ๊ฒ์
๋๋ค, Alexey, ๊ทธ๋ฅ ์ผํ์ธ์!
๋น์ฐํ ์ด๋ ๊ฒ ์ค์ํ ํ์ ์ ํ์ ์ด์์ต๋๋ค. user_id๋ก ์ก์ธ์ค - "์์ ". Lesha๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ์์ ํ๋ก์ธ์ค๋ฅผ ๋ฅ์ํ๊ฒ ์ฃฝ์ด๋ ๊ฒ์ ๋ณธ ๋ช๋ช ์ฌ๋๋ค์ ์์์ ํ๋ก์ธ์ค ๋ฒํธ๋ก ๋ช ๋ น์ ์ ๋ ฅํ๋ ค๊ณ ์๋ํ์ง๋ง ๋ด ์ค๋งํธ ๋ด์ ์์ผ ์๋ ์์์ต๋๋ค. Lesha๋ ์ฆ์ ๊ฑฐ๋ถํ์ต๋๋ค.
/๊ฒฝ๊ณ ๋ก๊ทธ
๊ธ์์, ๋ง์ฝ์ ๋๋นํด์ ์ ๋ ๋ค์๊ณผ ๊ฐ์ ๋ช
๋ น์ ๋ด๋ ธ์ต๋๋ค.
/alertlog <์ค ์> โ ์ง์ ๋ ์์ ๊ฒฝ๊ณ ๋ก๊ทธ ์ค์ ๊ฐ์ ธ์ต๋๋ค.
๋ด์ ๊ฒฝ๊ณ ๋ก๊ทธ๋ฅผ ๊ฐ์ ธ์์ ์ด๋ฅผ pyste๋ผ๊ณ ํ๋ Pastebin๊ณผ ๊ฐ์ ์๋น์ค๋ก ๋ณด๋ด๊ณ ๋ถ์ฌ๋ฃ๊ธฐ์ ๋ํ ๋งํฌ๋ฅผ ์์ฒญ ์ฑํ
์ผ๋ก ๋ณด๋
๋๋ค.
/์ฒดํฌ ๋ฌด๋ฌ
๋ค์์ผ๋ก ์์ฒญ์ด ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋งํฉ๋๋ค. ์ง๊ธ๊น์ง๋ ํ๋ก์ ํธ ๊ธฐ์ ์ง์ํ์์ ์ด ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ์์งํ์ต๋๋ค. ๋ฌธ์ ์์ด! ์ฐ๋ฆฌ์ ์ฉ๊ฐํ ํ ์คํฐ๋ค์ ์ด์ ๋ํ ํ ์คํธ ์ฌ๋ก๋ฅผ ๊ฐ๋ฐํ์ต๋๋ค. ๊ฒฐ๊ณผ ํ ์คํธ ๋ก๊ทธ๋ ์ฝ๊ธฐ๊ฐ ๊ทธ๋ฆฌ ํธ๋ฆฌํ์ง ์์ต๋๋ค. ๊ฒฝํ์ด ์๋ ์ฌ์ฉ์๋ ์ดํดํ๋ ๋ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ณ ํ์ํ ์ ๋ณด๋ฅผ ๊ฐ์กฐ ํ์ํ ์ง ํ์ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์์ผ๋ก ํ ์ ์๋ ์ผ์ ์์ผ๋ก ํ๋ ๊ฒ์ ์ข์ํ์ง ์์ต๋๋ค... ๋ด์ ์ํ ์๋ก์ด ์์ ์ ๋๋ค!
/checks ๋ช
๋ น์ ๊ฐ๋จํ๊ณ ๋ช
ํํ ๋ฉ๋ด๋ฅผ ํ์ํฉ๋๋ค. ์ด๋ฒ์๋ ์ง์นจ ์์ด ์ด ๋ช
๋ น์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ์ต๋๋ค!
์ํ๋ ํญ๋ชฉ์ ์ ํํ๋ฉด ๋ฉ๋ด ๋์ ํ ์คํธ ์์ ์๋ฆผ์ด ํ์๋๋ฏ๋ก ์กฐ๊ธํ ์ฌ์ฉ์๊ฐ ํ ์คํธ๋ฅผ 100500๋ฒ ์คํํ์ง ์์๋ ๋ฉ๋๋ค.
์ ํํ ๋ฉ๋ด ํญ๋ชฉ์ ๋ฐ๋ผ ํน์ ํ
์คํธ๊ฐ ๋คํธ์ํฌ, ์ฆ ๋ด์ด ์๋ ์์คํ
(jmeter๊ฐ ์ฌ์ ๊ตฌ์ฑ๋์ด ์๊ณ ํ์ํ ํ
์คํธ๊ฐ ์๋ ์์น...)์์ ์์๋๊ฑฐ๋ ๋ฐ์ดํฐ ์ผํฐ์์ ์ง์ (A์์) ์์๋ฉ๋๋ค. ์ง์ฐ ํ
์คํธ ์ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ์ ์ธํ๊ฑฐ๋ ์ต์ํ์ผ๋ก ์ค์ด๊ธฐ ์ํด ์ ํ๋ฆฌ์ผ์ด์
์์ ์ค๋น๋ ๋จธ์ ).
ํ ์คํธ๋ฅผ ์๋ฃํ๊ณ ๋ก๊ทธ๋ฅผ ๋ฐ์ ํ ๋ด์ ์ด๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ "์ฌ๋์ด ์ฝ์ ์ ์๋" ํ์์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ์์ฑํฉ๋๋ค.
์ธก์ ํญ๋ชฉ ์์ง
๊ธฐ๋ฅ์ด ์ถ์๋์์ผ๋ฉฐ ๊ด์ฌ ์๋ ํ๋ก์ ํธ ๊ด๋ฆฌ์๋ ํด๋น ์ง์ญ์ ๋ํ ๊ธฐ๋ฅ์ ๋ฐ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ ๋์ ์ฌ ๋ง์ ํ๋ก์ ํธ ๊ด๋ฆฌ์๋ ์ด๋ ๊ฒ ๋งํ์ต๋๋ค. โ๋๋ ์๊ฐ ํต๊ณ๋ฅผ ๊ฐ๊ณ ์ถ์ต๋๋ค!โ CIT์ ๋๊ตฐ๊ฐ๊ฐ Zabbix์์ ์ด ๋ชจ๋ ๊ฒ์ ๋ชจ๋ํฐ๋งํ๋ ๊ฒ์ด ํธ๋ฆฌํ ๊ฒ์ด๋ผ๊ณ ๋งํ์ต๋๋ค. ์๋น ์ค, ๊ทธ๋ฌ๋๊น ์๋น ์ค...
์๋ฃจ์ ์ ๋ณต์ ํด์ผ ํ ํ์์ฑ์ ๋๋นํด์ผ ํ๋ค๊ณ ์๊ฐํ๋๋ฐ... ์์ด๋์ด๋ฅผ ๋์ปค ์ปจํ ์ด๋์ ๋ด์์ต๋๋ค. ์ปจํ ์ด๋์์ jmeter๋ ์ผ์ ์ ๋ฐ๋ผ(10๋ถ๋ง๋ค ํ ๋ฒ์ฉ) ์คํ๋๊ณ ๋ก๊ทธ๋ฅผ ํน์ ์์น์ ๋ฐฐ์นํ๋ฉฐ PHP๋ ์ด๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์น ํ์ด์ง ํ์์ผ๋ก ํ์ํฉ๋๋ค. web.page.get ํค๋ฅผ ์ฌ์ฉํ๋ Zabbix๋ ์ด ํ์ด์ง๋ฅผ ์์ ํ๊ณ ์ ๊ธฐ์ ์ผ๋ก ํน์ ์ข ์ ์์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ณ ๊ทธ๋ํ๋ฅผ ์์ฑํฉ๋๋ค.
๋์์ง ์์ ๊ฒ ๊ฐ์์. ๊ทธ๋ํ๋ฅผ ๊ด์ฐฐํจ์ผ๋ก์จ ์ฐ๋ฆฌ๋ ๋จผ์ ๋๋ต์ ์ธ ์ ํ๋ฆฌ์ผ์ด์
์๋๋ฅผ ํ์ธํ๊ณ , ๊ทธ๋ํ์์ ํผํฌ๊ฐ ๊ฐ์ง๋๋ฉด "ํ๋ฌ๊ทธ"๊ฐ ๋๋ต ์ด๋์ ์๋์ง ์ ์ ์์ต๋๋ค. ๊ฐ๋จ ํด. ์ง๊ธ๊น์ง๋ ํ ์ง์ญ์์๋ง ์์๊ฐ ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ง๋ง ๊ด์ฌ ์๋ ๋ถ๋ค์ ์ํด ๋ณต์ ํ ์ค๋น๊ฐ ๋์ด ์์ต๋๋ค.
์์ฉ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ
์ ์ฌํ ์์ ์ ๋ํ ํต๊ณ๋ ์ต๊ทผ ์์ ์ ๋จ์ํํ๊ณ ์ด์งํ๊ธฐ ์ํ ๋ ๋ง์ ์์ด๋์ด๋ฅผ ๋ถ๋ฌ์ผ์ผ์ผฐ์ต๋๋ค. ์ผ๋ถ ํ๋ก์ ํธ์ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ์์๋ ์ฃผ์ Crypto Pro ์ปจํ ์ด๋๋ฅผ ์ค์นํด์ผ ํ๋ฉฐ ๊ทธ ์ค ๋ค์๊ฐ ์์ผ๋ฉฐ ๋์งํธ ์๋ช ์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ง๋ฃ๋ฉ๋๋ค. ํ๋ฃจ์ 2๊ฐ์ ์์ ์ด ๋์ฐฉํ ๋๋ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ ๋ ์ด๋ฌํ ๋ชฉ์ ์ผ๋ก ๋ด์ ์ฌ์ฉํ๋ ๊ฒ์ด ์์ ํ์ง ์๋ค๊ณ ์๊ฐํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ง์ ๊ธฐ๋ฅ์ ์์ฑํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๋น์ฐํ ์น์ธ ๋ฐ ์ก์ธ์ค ๊ถํ ํ์ธ์ด ํ์ํฉ๋๋ค. ํ์ํ ๊ถํ์ด ์๋ ๊ฒฝ์ฐ ๋์งํธ ์๋ช ์์ , ์ค์น, ์ญ์ , ์ ๋ณด ๋ณด๊ธฐ ๋ฑ์ ์ํ ์ถ๊ฐ ๋ฉ๋ด ํญ๋ชฉ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํด๋น ๊ธฐ๋ฅ์ ํ์ฌ ๊ฐ๋ฐ ์ค์ ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ด๊ฒ์ ๊ทธ๋ฆฌ ์ด๋ ต์ง ์์ต๋๋ค. ๊ธฐ์กด ์ง์นจ์ ์กฐ๊ธ ์ฝ๊ณ , ์ฝ๋ ์์ ๋ฅผ ์ดํด๋ณด๊ณ , ๊ฐ๋ฐ ๊ฒฝํ์ด ๋ ๋ง์ ๋๋ฃ์๊ฒ ๋ฌผ์ด๋ณธ ๋ค์ ์ํํ๋ฉด ๋ฉ๋๋ค. ์ฐ๊ตฌ ๊ณผ์ ์์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ถ๊ฐํ ์์ด๋์ด๊ฐ ๋ํ๋ฌ์ต๋๋ค. ๋๋ ๋ํด๋ ์น ๊ณํ์ ์ธ์ฐ์ง ์์ ๊ฒ์ ๋๋ค. ๊ฐ๋ฐ์ด ์์ผ๋ฏ๋ก ๋ชจ๋๊ฐ ์์ ์ ์ฌ์ ์ ์ ๊ฒฝ ์ฐ๋๋กํ์ญ์์ค. ํ์ง๋ง ํฅ๋ฏธ๋กญ๊ธฐ๋ ํ์ง๋ง ์ ๊ฐ ์ง์ ํ๊ณ ์์ด์.
๊ณํ
๋ด๊ฐ ๋งํ๋ฏ์ด, ์ฐ๋ฆฌ ๋ด์ ์ฌ์ฉํ๊ธฐ ์ํด ๋ค์ํ ์์ด๋์ด๊ฐ ํ์ํ์ผ๋ฉฐ ์ผ๋ฐ์ ์ผ๋ก "์๋ํ ํฌ์ธํธ"์ ๋ํ ์์ด๋์ด๋ฅผ ์ ์ ์๊ฐ์ด ์์๊ธฐ ๋๋ฌธ์ ๊ทธ ์ค ๋ง์ ์์ด๋์ด๊ฐ ์ํ์ก์ต๋๋ค. ์ด์ ๋๋ ๋ง์์ ๋ ์ค๋ฅด๋ ๋ชจ๋ ๊ฒ์ ์ ์ผ๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ๋ค๋ฅธ ์ฌ๋๋ค๋ ๊ทธ๋ ๊ฒ ํ๋๋ก ๊ถํฉ๋๋ค.
ํ์ง๋ง ์๋ ์ธ์ด๋ ์์ ์ ์์์ ๋ค์ด์ฃผ๋ ๊ฒ์ ์์ง ์์ต๋๋ค. ์ต์ ๊ฒ๋ถํฐ:
/kill_sql SQL_ID โ ์ด SQL_ID ์์ฒญ์ผ๋ก ๋ชจ๋ ์ธ์
์ ์ข
๋ฃํฉ๋๋ค.
/kill_block - ๋ฃจํธ ์ฐจ๋จ ์ธ์
์ ์ข
๋ฃํฉ๋๋ค.
/show_em โ EM ์ฑ๋ฅ ์ฌ์ง ํ์
๊ทธ๋ ๊ตํํ ์ฌ๋์
๋๋ค. ๊ทธ๋ ์ ํ๊ธฐ์์ DBA๋ฅผ ๋ฐ๋์งํ๊ณ ์ถ์ดํฉ๋๋ค =)
์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ์กฐ๊ตญ์ ์ด์ต์ ์ํด ์ผํ๋ ๋ฐฉ์์ ๋๋ค!
์ผ์์ ์ด๊ณ ํฅ๋ฏธ๋กญ์ง ์์ ์์ ์ ์ด๋ป๊ฒ ์ ๊ฑฐํฉ๋๊น?
์ฝ์ ๋ด์ฉ์ด ํฅ๋ฏธ๋กญ๊ณ ๋๊ตฐ๊ฐ์๊ฒ ์ ์ฉํ ์๋ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๋
์๋ฅผ ์ง๋ฃจํ๊ฒ ํ ์๊ฐ์ ์์์ต๋๋ค... ์ฐ๋ฆฌ ๋ชจ๋์๊ฒ ํ์ด์ ๋น๋๋ค.
์ถ์ฒ : habr.com