ํด๋ฆฌํ ํด๋ฆญ โ Cratus(ํ๋ก์ธ์ค ๊ฐ์ ์ ์ํ IoT ์ผ์)์ CTO์ด์ ์ฌ๋ฌ ์คํํธ์
(Rocket Realtime School, Neurensic ๋ฐ H2O.ai ํฌํจ)์ ์ฐฝ๋ฆฝ์์ด์ ๊ณต๋ ์ฐฝ๋ฆฝ์๋ก์ ์ฌ๋ฌ ์ฐจ๋ก ์ฑ๊ณต์ ์ผ๋ก ์ข
๋ฃํ์ต๋๋ค. Cliff๋ 15์ธ์ ์ฒซ ๋ฒ์งธ ์ปดํ์ผ๋ฌ(TRS Z-80์ฉ Pascal)๋ฅผ ์์ฑํ์ต๋๋ค! ๊ทธ๋ Java(Sea of โโโโNodes IR)์ C2 ์์
์ผ๋ก ๊ฐ์ฅ ์ ์๋ ค์ ธ ์์ต๋๋ค. ์ด ์ปดํ์ผ๋ฌ๋ JIT๊ฐ ๊ณ ํ์ง ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค๋ ์ฌ์ค์ ์ธ์์ ๋ณด์ฌ์ฃผ์์ต๋๋ค. ์ด๋ Java๊ฐ ์ฃผ์ ํ๋ ์ํํธ์จ์ด ํ๋ซํผ ์ค ํ๋๋ก ๋ฑ์ฅํ ์์ธ ์ค ํ๋์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ Cliff๋ Azul Systems๊ฐ 864๋ฐ๋ฆฌ์ด ์ด๋ด์ 500GB ํ์์ GC ์ผ์ ์ค์ง๋ฅผ ์ง์ํ๋ ์์ Java ์ํํธ์จ์ด๋ก 10์ฝ์ด ๋ฉ์ธํ๋ ์์ ๊ตฌ์ถํ๋๋ก ๋์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก Cliff๋ JVM์ ๋ชจ๋ ์ธก๋ฉด์ ์์
ํ์ต๋๋ค.
์ด habrapost๋ Cliff์์ ํ๋ฅญํ ์ธํฐ๋ทฐ์
๋๋ค. ์ฐ๋ฆฌ๋ ๋ค์ ์ฃผ์ ์ ๊ดํด ์ด์ผ๊ธฐํ ๊ฒ์
๋๋ค:
- ๋ฎ์ ์์ค์ ์ต์ ํ๋ก ์ ํ
- ๋๊ท๋ชจ ๋ฆฌํฉํ ๋ง์ ์ํํ๋ ๋ฐฉ๋ฒ
- ๋น์ฉ ๋ชจ๋ธ
- ๋ฎ์ ์์ค์ ์ต์ ํ ๊ต์ก
- ์ฑ๋ฅ ํฅ์์ ์ค์ ์ฌ๋ก
- ์์ ๋ง์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ง๋๋ ์ด์
- ์ฑ๋ฅ ์์ง๋์ด ๊ฒฝ๋ ฅ
- ๊ธฐ์ ์ ๊ณผ์
- ๋ ์ง์คํฐ ํ ๋น๊ณผ ๋ฉํฐ ์ฝ์ด์ ๋ํด ์กฐ๊ธ
- ์ธ์์ ๊ฐ์ฅ ํฐ ๋์
์ธํฐ๋ทฐ๋ ๋ค์๊ณผ ๊ฐ์ด ์งํ๋ฉ๋๋ค.
- ์๋๋ ์ด ์ฌํ๋ฆฐ ์๋ง์กด ์น ์๋น์ค์์. ๊ทธ์ ๊ฒฝ๋ ฅ์์ ๊ทธ๋ ์์ ํ ๋ค๋ฅธ ํ๋ก์ ํธ์ ์ฐธ์ฌํ์ต๋๋ค. ๊ทธ๋ Yandex์ NewSQL ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค, Kaspersky Lab์ ํด๋ผ์ฐ๋ ๊ฐ์ง ์์คํ , Mail.ru์ ๋ฉํฐ ํ๋ ์ด์ด ๊ฒ์, Deutsche Bank์ ์ธํ ๊ฐ๊ฒฉ ๊ณ์ฐ ์๋น์ค๋ฅผ ํ ์คํธํ์ต๋๋ค. ๋๊ท๋ชจ ๋ฐฑ์๋ ๋ฐ ๋ถ์ฐ ์์คํ ํ ์คํธ์ ๊ด์ฌ์ด ์์ต๋๋ค.
- ๋ธ๋ผ๋๋ฏธ๋ฅด ์ํธ๋์ฝํ ๋ทํฌ๋์ปค์์. ํต์ ์ฌ์
์๊ฐ ๋คํธ์ํฌ ๋ฐ ๋คํธ์ํฌ ์ฅ๋น ๊ด๋ฆฌ ํ๋ก์ธ์ค๋ฅผ ์๋ํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ํํธ์จ์ด์ธ NetCracker OS์ ์ฑ๋ฅ๊ณผ ํ์ฅ์ฑ์ ๋ํด XNUMX๋
๋์ ์ฐ๊ตฌํ์ต๋๋ค. Java ๋ฐ Oracle ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฑ๋ฅ ๋ฌธ์ ์ ๊ด์ฌ์ด ์์ต๋๋ค. ๊ณต์ PostgreSQL JDBC ๋๋ผ์ด๋ฒ์์ XNUMX๊ฐ ์ด์์ ์ฑ๋ฅ ๊ฐ์ ์ ์ด๋ฃฌ ์ ์์
๋๋ค.
๋ฎ์ ์์ค์ ์ต์ ํ๋ก ์ ํ
์ค๋๋ฅ: ๋น์ ์ JIT ์ปดํ์ผ, Java ๋ฐ ์ฑ๋ฅ ์์ ์ ๋ฐ์ ๊ฑธ์ณ ํฐ ์ด๋ฆ์ ๊ฐ๊ณ ์๋ ์ฌ๋์ด์ฃ ?
๋ญ๋ ๋ฌ์ง: ๊ทธ๋ฐ๊ฑฐ๊ตฌ๋!
์ค๋๋ฅ: ํผํฌ๋จผ์ค ์์ ์ ๋ํ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ์ง๋ฌธ๋ถํฐ ์์ํ๊ฒ ์ต๋๋ค. CPU ์์ค์์ ์์ ํ๋ ๊ฒ๊ณผ ๊ฐ์ด ๋์ ์์ค ์ต์ ํ์ ๋ฎ์ ์์ค ์ต์ ํ ์ฌ์ด์ ์ ํ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์๋์?
๋ญ๋ ๋ฌ์ง: ๋ค, ์ฌ๊ธฐ์๋ ๋ชจ๋ ๊ฒ์ด ๊ฐ๋จํฉ๋๋ค. ๊ฐ์ฅ ๋น ๋ฅธ ์ฝ๋๋ ๊ฒฐ์ฝ ์คํ๋์ง ์๋ ์ฝ๋์ ๋๋ค. ๋ฐ๋ผ์ ํญ์ ๋์ ์์ค์์ ์์ํ์ฌ ์๊ณ ๋ฆฌ์ฆ ์์ ์ ์ํํด์ผ ํฉ๋๋ค. ์ถฉ๋ถํ ํฐ ์์๊ฐ ๊ฐ์ ํ์ง ์๋ ํ ๋ ๋์ O ํ๊ธฐ๋ฒ์ด ๋ ๋์ O ํ๊ธฐ๋ฒ์ ๋ฅ๊ฐํฉ๋๋ค. ๋ฎ์ ์์ค์ ์ผ์ ๋ง์ง๋ง์ ์งํ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์คํ์ ๋๋จธ์ง ๋ถ๋ถ์ ์ถฉ๋ถํ ์ต์ ํํ์ง๋ง ์ฌ์ ํ ํฅ๋ฏธ๋ก์ด ๋ด์ฉ์ด ๋จ์ ์๋ค๋ฉด ์ด๋ ๋ฎ์ ์์ค์ ๋๋ค. ํ์ง๋ง ๋์ ์์ค์์ ์์ํ๋ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ๋์ ์์ค์ ์์ ์ด ์ถฉ๋ถํ ์๋ฃ๋์๋์ง ์ด๋ป๊ฒ ์ ์ ์๋์? ๊ธ์... ์ ๋ ์๋ผ. ์ค๋น๋ ๋ ์ํผ๊ฐ ์์ต๋๋ค. ๋ฌธ์ ๋ฅผ ์ดํดํ๊ณ ๋ฌด์์ ํ ๊ฒ์ธ์ง ๊ฒฐ์ ํ ๋ค์(๋ฏธ๋์ ๋ถํ์ํ ์กฐ์น๋ฅผ ์ทจํ์ง ์๋๋ก) ์ ์ฉํ ์ ๋ณด๋ฅผ ์ ๊ณตํ ์ ์๋ ํ๋กํ์ผ๋ฌ๋ฅผ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค. ์ด๋ ์์ ์์ ๋น์ ์ ๋ถํ์ํ ๊ฒ๋ค์ ์ ๊ฑฐํ๊ณ ์ด์ ๋ฎ์ ์์ค์ ๋ฏธ์ธ ์กฐ์ ์ ํด์ผ ํ ๋๋ผ๋ ๊ฒ์ ์ค์ค๋ก ๊นจ๋ซ์ต๋๋ค. ์ด๊ฒ์ ํ์คํ ํน๋ณํ ์ข ๋ฅ์ ์์ ์ด๋ค. ๋ถํ์ํ ์ผ์ ํ๊ณ ์์ง๋ง ๋๋ฌด ๋นจ๋ฆฌ ์์ง์ฌ์ ์์ฐ์ฑ์ ๋ํด ๊ฑฑ์ ํ ์ฌ์ ๊ฐ ์๋ ์ฌ๋๋ค์ด ๋ง์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ ์ง๋ฌธ์ด ํ๋ช ์ค๋ฝ๊ฒ ๋ํ๋ ๋๊น์ง์ ๋๋ค. ๋ณดํต 99%์ ์๊ฐ์ ์๋ฌด๋ ๋ด๊ฐ ํ๋ ์ผ์ ๊ด์ฌ์ ๋์ง ์๋๋ค. ์๋ฌด๋ ๊ด์ฌ์ ๋์ง ์๋ ๊ฒฐ์ ์ ์ธ ๊ธธ์์ ์ค์ํ ์ผ์ด ์ผ์ด๋๋ ์๊ฐ๊น์ง ๋ง์ด๋ค. ๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ๋ค๋ค โ์ ์ฒ์๋ถํฐ ์๋ฒฝํ๊ฒ ์ ๋๋โ๊ณ ์์๋ฆฌ๋ฅผ ํ๊ธฐ ์์ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฑ๋ฅ์๋ ํญ์ ๊ฐ์ ํ ๋ถ๋ถ์ด ์์ต๋๋ค. ํ์ง๋ง 99%์ ๊ฒฝ์ฐ ๋จ์๊ฐ ์์ต๋๋ค! ๋น์ ์ ๋จ์ง ๋ฌด์ธ๊ฐ๋ฅผ ์๋์ํค๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ผ๋ฉฐ ๊ทธ ๊ณผ์ ์์ ๋ฌด์์ด ์ค์ํ์ง ํ์ ํ๊ณ ์์ต๋๋ค. ์ด ์ํ์ด ์๋ฒฝํด์ผ ํ๋ค๋ ๊ฒ์ ๋ฏธ๋ฆฌ ์ ์ ์๊ธฐ ๋๋ฌธ์ ์ฌ์ค ๋ชจ๋ ๋ฉด์์ ์๋ฒฝํด์ผ ํฉ๋๋ค. ํ์ง๋ง ์ด๊ฒ์ ๋ถ๊ฐ๋ฅํ๊ณ ๋น์ ์ ๊ทธ๋ ๊ฒ ํ์ง ์์ต๋๋ค. ํญ์ ๊ณ ์ณ์ผ ํ ๋ถ๋ถ์ด ๋ง์ด ์์ผ๋ฉฐ ์ด๋ ์์ ํ ์ ์์ ์ธ ํ์์ ๋๋ค.
๋๊ท๋ชจ ๋ฆฌํฉํ ๋ง์ ์ํํ๋ ๋ฐฉ๋ฒ
์ค๋๋ฅ: ๊ณต์ฐ ์์ ์ ์ด๋ป๊ฒ ์งํ๋๋์? ์ด๊ฒ์ ๊ต์ฐจ ๋ฌธ์ ์ ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ธฐ์กด์ ๋ง์ ๊ธฐ๋ฅ์ด ๊ต์ฐจํ๋ฉด์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผ ํ๋ ์ ์ด ์์ต๋๊น?
๋ญ๋ ๋ฌ์ง: ๋๋ ๊ทธ๊ฒ์ ํผํ๋ ค๊ณ ๋
ธ๋ ฅํ๋ค. ์ฑ๋ฅ์ด ๋ฌธ์ ๊ฐ ๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์๋ค๋ฉด ์ฝ๋ฉ์ ์์ํ๊ธฐ ์ ์ ํนํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ํด ์๊ฐํด ๋ด
๋๋ค. ๊ทธ๋ฌ๋ ์ข
์ข
์ด ๋ชจ๋ ๊ฒ์ ์์ฃผ ๋์ค์ ๋ฐ๊ฒฌํ๊ฒ ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ทน๋จ์ ์ธ ์กฐ์น๋ฅผ ์ทจํ๊ณ ์ ๊ฐ "๋ค์ ์์ฑํ์ฌ ์ ๋ณต"์ด๋ผ๊ณ ๋ถ๋ฅด๋ ์์
์ ์ํํด์ผ ํฉ๋๋ค. ์ถฉ๋ถํ ํฐ ์กฐ๊ฐ์ ํ๋ณดํด์ผ ํฉ๋๋ค. ์ผ๋ถ ์ฝ๋๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฑ์ผ๋ก ์ธํด ๋ค์ ์์ฑํด์ผ ํฉ๋๋ค. ์ฝ๋๋ฅผ ๋ค์ ์์ฑํ๋ ์ด์ ๊ฐ ๋ฌด์์ด๋ , ์์ ๋ถ๋ถ๋ณด๋ค ํฐ ๋ถ๋ถ์ ๋ค์ ์์ฑํ๋ ๊ฒ์ด ๊ฑฐ์ ํญ์ ๋ ์ข์ต๋๋ค. ์ด ์๊ฐ, ๋ชจ๋๊ฐ ๋๋ ค์์ ๋จ๊ธฐ ์์ํฉ๋๋ค. โ๋ง์์ฌ, ๊ทธ๋ ๊ฒ ๋ง์ ์ฝ๋๋ฅผ ๋ง์ง ์๋ ์์์!โ ๊ทธ๋ฌ๋ ์ค์ ๋ก๋ ์ด ์ ๊ทผ ๋ฐฉ์์ด ๊ฑฐ์ ํญ์ ํจ์ฌ ๋ ํจ๊ณผ์ ์
๋๋ค. ์ฆ์ ํฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ๊ทธ ์ฃผ์์ ํฐ ์์ ๊ทธ๋ฆฌ๊ณ ๋ค์๊ณผ ๊ฐ์ด ๋งํด์ผ ํฉ๋๋ค. ์ ์์ ๋ชจ๋ ๊ฒ์ ๋ค์ ์ฐ๊ฒ ์ต๋๋ค. ํ
๋๋ฆฌ๋ ๊ต์ฒดํด์ผ ํ๋ ๋ด๋ถ ์ฝํ
์ธ ๋ณด๋ค ํจ์ฌ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ฌํ ๊ฒฝ๊ณ ๋ฌ์ฌ๋ฅผ ํตํด ๋ด๋ถ ์์
์ ์๋ฒฝํ๊ฒ ์ํํ ์ ์๋ค๋ฉด ์์ด ์์ ๋กญ๊ณ ์ํ๋ ๊ฒ์ ํ ์ ์์ต๋๋ค. ๋ฌธ์ ๋ฅผ ์ดํดํ๊ณ ๋๋ฉด ๋ค์ ์์ฑํ๋ ๊ณผ์ ์ด ํจ์ฌ ์ฌ์์ง๋ฏ๋ก ํฌ๊ฒ ์๋ํด ๋ณด์ธ์!
๋์์ ๋๊ท๋ชจ ์ฌ์์ฑ์ ์ํํ๊ณ ์ฑ๋ฅ์ด ๋ฌธ์ ๊ฐ ๋ ๊ฒ์ด๋ผ๋ ์ฌ์ค์ ๊นจ๋ซ๊ฒ ๋๋ฉด ์ฆ์ ์ด์ ๋ํด ๊ฑฑ์ ํ ์ ์์ต๋๋ค. ์ด๊ฒ์ ์ผ๋ฐ์ ์ผ๋ก "๋ฐ์ดํฐ๋ฅผ ๋ณต์ฌํ์ง ๋ง๊ณ , ๋ฐ์ดํฐ๋ฅผ ๊ฐ๋ฅํ ํ ๊ฐ๋จํ๊ฒ ๊ด๋ฆฌํ๊ณ , ์๊ฒ ๋ง๋์ญ์์ค"์ ๊ฐ์ ๊ฐ๋จํ ๊ฒ์ผ๋ก ๋ณํฉ๋๋ค. ๋๊ท๋ชจ ์ฌ์์ฑ์๋ ์ฑ๋ฅ์ ํฅ์์ํค๋ ํ์ค ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฑฐ์ ํญ์ ๋ฐ์ดํฐ๋ฅผ ์ค์ฌ์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ค.
๋น์ฉ ๋ชจ๋ธ
์ค๋๋ฅ: ํ์บ์คํธ ์ค ํ๋์์ ์์ฐ์ฑ ์ธก๋ฉด์ ๋น์ฉ ๋ชจ๋ธ์ ๋ํด ์ด์ผ๊ธฐํ์ จ์ต๋๋ค. ์ด๊ฒ ๋ฌด์จ ๋ป์ธ์ง ์ค๋ช ํด ์ฃผ์ค ์ ์๋์?
๋ญ๋ ๋ฌ์ง: ํ๋ฆผ์์ด. ๋๋ ํ๋ก์ธ์ ์ฑ๋ฅ์ด ๋งค์ฐ ์ค์ํ๋ ์๋์ ํ์ด๋ฌ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ์๋๊ฐ ๋ค์ ๋์์ต๋๋ค. ์ด๋ช
์๋ ์์ด๋ฌ๋๊ฐ ์์ง ์์ต๋๋ค. ๋๋ 256๋นํธ ์ปดํจํฐ ์๋์ ์ด๊ธฐ ์์ํ๊ณ ๋์ ์ฒซ ๋ฒ์งธ ์ปดํจํฐ๋ XNUMX๋ฐ์ดํธ๋ก ์๋ํ์ต๋๋ค. ์ ํํ ๋ฐ์ดํธ์
๋๋ค. ๋ชจ๋ ๊ฒ์ด ๋งค์ฐ ์์์ต๋๋ค. ๋ช
๋ น์ ๊ณ์ฐ๋์ด์ผ ํ๊ณ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์คํ์ด ์ฌ๋ผ๊ฐ๊ธฐ ์์ํ๋ฉด์ ์ธ์ด๊ฐ ์ ์ ๋ ๋ง์์ก์ต๋๋ค. Assembler, Basic, C๊ฐ ์์๊ณ C๋ ๋ ์ง์คํฐ ํ ๋น ๋ฐ ๋ช
๋ น์ด ์ ํ๊ณผ ๊ฐ์ ๋ง์ ์ธ๋ถ ์ฌํญ์ ์ฒ๋ฆฌํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ฑฐ๊ธฐ์์๋ ๋ชจ๋ ๊ฒ์ด ๋งค์ฐ ๋ช
ํํ์ผ๋ฉฐ ๋ณ์์ ์ธ์คํด์ค์ ๋ํ ํฌ์ธํฐ๋ฅผ ๋ง๋ค๋ฉด ๋ก๋๊ฐ ๋ฐ์ํ๊ณ ์ด ๋ช
๋ น์ ๋น์ฉ์ด ์๋ ค์ก์ต๋๋ค. ํ๋์จ์ด๋ ์ผ์ ํ ์์ ๊ธฐ๊ณ ์ฃผ๊ธฐ๋ฅผ ์์ฑํ๋ฏ๋ก ์คํํ๋ ค๋ ๋ชจ๋ ๋ช
๋ น์ ํฉ์ฐํ์ฌ ๋ค์ํ ์์
์ ์คํ ์๋๋ฅผ ๊ฐ๋จํ ๊ณ์ฐํ ์ ์์ต๋๋ค. ๊ฐ ๋น๊ต/ํ
์คํธ/๋ถ๊ธฐ/ํธ์ถ/๋ก๋/์ ์ฅ์ ํฉ์ฐํ์ฌ ๋งํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ๋ฐ๋ก ์คํ ์๊ฐ์
๋๋ค. ์ฑ๋ฅ ํฅ์์ ์ํด ์์
ํ ๋ ์์ ํซ ์ฌ์ดํด์ ํด๋นํ๋ ์ซ์๊ฐ ๋ฌด์์ธ์ง ํ์คํ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ผ ๊ฒ์
๋๋ค.
๊ทธ๋ฌ๋ Java, Python ๋ฐ ์ด์ ์ ์ฌํ ๊ฒ์ผ๋ก ์ ํํ์๋ง์ ํ์ ์์ค ํ๋์จ์ด์์ ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋ฒ์ด๋๊ฒ ๋ฉ๋๋ค. Java์์ getter๋ฅผ ํธ์ถํ๋ ๋ฐ ๋๋ ๋น์ฉ์ ์ผ๋ง์
๋๊น? HotSpot์ JIT๊ฐ ์ฌ๋ฐ๋ฅธ ๊ฒฝ์ฐ
์ด์ ์ฐ๋ฆฌ๋ ์ง๋ XNUMX๋
๋์ ํ๋ก์ธ์ ์๋๊ฐ ๊ฑฐ์ ์ฆ๊ฐํ์ง ์์ ์ํฉ์ ์ฒํด ์์ต๋๋ค. ์๋ ์ด ๋์์๋ค! ๋ ์ด์ ์ฐ์ํ ๋จ์ผ ์ค๋ ๋ ์ฑ๋ฅ์ ๊ธฐ๋ํ ์ ์์ต๋๋ค. ํ์ง๋ง ๊ฐ์๊ธฐ ๋ณ๋ ฌ ์ปดํจํ
์ ๋น ์ง๋ฉด ์์ฒญ๋๊ฒ ์ด๋ ต์ต๋๋ค. ๋ชจ๋๊ฐ ๋น์ ์ ์ ์์ค ๋ณธ๋์ฒ๋ผ ๋ฐ๋ผ๋ณผ ๊ฒ์
๋๋ค. ์ฌ๊ธฐ์ XNUMX๋ฐฐ ๊ฐ์์ ์ผ๋ฐ์ ์ผ๋ก ๋๊ตฐ๊ฐ๊ฐ ๋ญ๊ฐ๋ฅผ ์๋ง์ผ๋ก ๋ง๋ ๊ณณ์์ ๋ฐ์ํฉ๋๋ค. ๋์์ฑ์๋ ๋ง์ ์์
์ด ํ์ํฉ๋๋ค. XNUMX๋ฐฐ์ ์๋ ํฅ์์ ์ป์ผ๋ ค๋ฉด ๋น์ฉ ๋ชจ๋ธ์ ์ดํดํด์ผ ํฉ๋๋ค. ๋น์ฉ์ ์ผ๋ง์ด๋ฉฐ ๋น์ฉ์ ์ผ๋ง์
๋๊น? ์ด๋ฅผ ์ํด์๋ ํ๊ฐ ๊ธฐ๋ณธ ํ๋์จ์ด์ ์ด๋ป๊ฒ ๋ง๋์ง ์ดํดํด์ผ ํฉ๋๋ค.
๋งํด ํฐ์จ(Martin Thompson)์ ์์ ์ ๋ธ๋ก๊ทธ์ ์ข์ ๋จ์ด๋ฅผ ์ ํํ์ต๋๋ค
์ค๋๋ฅ: ๊ทธ๋ฆฌ๊ณ ์ด๋ป๊ฒ ๊ทธ๋ฐ ๋ณผ๋ฅจ์ ๋จธ๋ฆฟ์์ ์ ์งํ ์ ์์ต๋๊น? ์ด๊ฒ์ ๋ ๋ง์ ๊ฒฝํ์ ํตํด ๋ฌ์ฑ๋ฉ๋๊น, ์๋๋ฉด? ๊ทธ๋ฌํ ๊ฒฝํ์ ์ด๋์์ ์ค๋๊ฐ?
๋ญ๋ ๋ฌ์ง: ๊ธ์, ๋๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก ๊ฒฝํ์ ์ป์ง ๋ชปํ์ต๋๋ค. ๋๋ ๋ชจ๋ ์ง์นจ์ ์ดํดํ ์ ์์๋ ์์ ์ ์ด์
๋ธ๋ฆฌ๋ก ํ๋ก๊ทธ๋๋ฐํ์ต๋๋ค. ์ด๋ฆฌ์๊ฒ ๋ค๋ฆฌ๊ฒ ์ง๋ง, ๊ทธ ์ดํ๋ก Z80 ๋ช
๋ น์ด ์ธํธ๋ ํญ์ ๋ด ๋จธ๋ฆฟ์, ๊ธฐ์ต ์์ ๋จ์ ์์์ต๋๋ค. ๋ง์ ํ๋ฉด 40๋ถ ์์ ์ฌ๋ ์ด๋ฆ์ ๊ธฐ์ต๋์ง ์์ง๋ง, XNUMX๋
์ ์ ์์ฑ๋ ์ฝ๋๋ ๊ธฐ์ต๋๋ค. ์๊ธด๋ฐ ์ฆํ๊ตฐ์ธ ๊ฒ ๊ฐ๋ค"
๋ฎ์ ์์ค์ ์ต์ ํ ๊ต์ก
์ค๋๋ฅ: ๋ ์ฝ๊ฒ ๋ค์ด๊ฐ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๋์?
๋ญ๋ ๋ฌ์ง: ์, ์๋์ค. ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ์ฌ์ฉํ๋ ํ๋์จ์ด๋ ์๊ฐ์ด ์ง๋๋ ํฌ๊ฒ ๋ณํ์ง ์์์ต๋๋ค. Arm ์ค๋งํธํฐ์ ์ ์ธํ๊ณ ๋ชจ๋๊ฐ x86์ ์ฌ์ฉํฉ๋๋ค. ์ผ์ข
์ ํ๋์ฝ์ด ์๋ฒ ๋ฉ์ ์ํํ์ง ์๋ ๊ฒฝ์ฐ์๋ ๋์ผํ ์์
์ ์ํํ๋ ๊ฒ์
๋๋ค. ์์์ด, ๋ค์. ์ง์นจ๋ ์์ธ๊ธฐ ๋์ ๋ณ๊ฒฝ๋์ง ์์์ต๋๋ค. ๊ฐ์ ์ด์
๋ธ๋ฆฌ์ ๋ญ๊ฐ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ๋ง์ง๋ ์์ง๋ง ์ดํดํ๊ธฐ์๋ ์ถฉ๋ถํฉ๋๋ค. ๋น์ ์ ์๊ณ ์์ง๋ง ๋๋ ์์ ํ ์ง์งํ๊ฒ ๋งํ๊ณ ์์ต๋๋ค. ์ธ์ด์ ํ๋์จ์ด ๊ฐ์ ๋์ ๊ด๊ณ๋ฅผ ์ดํดํด์ผ ํฉ๋๋ค. ๊ทธ ํ์๋ ๊ฐ์ ์ฝ๊ฐ์ ๊ธ์ ์์ฑํ๊ณ ์์ ์ฅ๋๊ฐ ์ธ์ด๋ฅผ ์ํ ์์ ์ฅ๋๊ฐ ์ปดํ์ผ๋ฌ๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ์ฅ๋๊ฐ ๊ฐ๋ค๋ ๊ฒ์ ํฉ๋ฆฌ์ ์ธ ์๊ฐ ๋ด์ ๋ง๋ค์ด์ ธ์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ๋งค์ฐ ๊ฐ๋จํ ์ ์์ง๋ง ์ง์นจ์ ์์ฑํด์ผ ํฉ๋๋ค. ๋ช
๋ น์ด๋ฅผ ์์ฑํ๋ ํ์๋ ๋ชจ๋ ์ฌ๋์ด ์์ฑํ๋ ๊ณ ๊ธ ์ฝ๋์ ํ๋์จ์ด์์ ์คํ๋๋ ๊ธฐ๊ณ์ด ์ฝ๋ ์ฌ์ด๋ฅผ ์ฐ๊ฒฐํ๋ ๋น์ฉ ๋ชจ๋ธ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ด ์์ ์ ์ปดํ์ผ๋ฌ๊ฐ ์์ฑ๋ ๋ ๋๋์ ์๊ฒจ์ง ๊ฒ์
๋๋ค. ์ฌ์ง์ด ๊ฐ์ฅ ๊ฐ๋จํ ์ปดํ์ผ๋ฌ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค. ๊ทธ ํ์๋ Java๋ฅผ ์ดํด๋ณด๊ธฐ ์์ํ ์ ์์ผ๋ฉฐ Java์ ์๋ฏธ๋ก ์ ํ์ด ํจ์ฌ ๋ ๊น๊ณ Java๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฒ์ด ํจ์ฌ ๋ ์ด๋ ต๋ค๋ ์ฌ์ค์ ์ ์ ์์ต๋๋ค. Java์์๋ ์ฐ๋ฆฌ์ ๋ธ๋ฆฌ์ง๊ฐ ์ข์์ง ๋์์ง, ๋ฌด์์ด ๋ฌด๋์ง๊ฒ ๋ง๋ค๊ณ ๋ฌด์์ด ๋ฌด๋์ง์ง ์์์ง๋ฅผ ์ดํดํ๋ ๊ฒ์ด ํจ์ฌ ๋ ์ด๋ ต์ต๋๋ค. ํ์ง๋ง ์ฝ๋๋ฅผ ๋ณด๊ณ "์, ์ด getter๋ ๋งค๋ฒ ์ธ๋ผ์ธ๋์ด์ผ ํฉ๋๋ค."๋ผ๋ ๊ฒ์ ์ดํดํ ์ ์๋ ์ผ์ข
์ ์์์ ์ด ํ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฉ์๋๊ฐ ๋๋ฌด ์ปค์ง๊ณ JIT๊ฐ ๋ชจ๋ ๊ฒ์ ์ธ๋ผ์ธํ๊ธฐ ์์ํ๋ ์ํฉ์ ์ ์ธํ๊ณ ๋ ๋๋๋ก ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ๊ทธ๋ฌํ ์ฅ์์ ์ฑ๋ฅ์ ์ฆ์ ์์ธกํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก getter๋ ์ ์๋ํ์ง๋ง ๋๊ท๋ชจ ํซ ๋ฃจํ๋ฅผ ์ดํด๋ณด๋ฉด ์์ ์ด ์ํํ๋ ์์
์ ๋ชจ๋ฅด๋ ์ผ๋ถ ํจ์ ํธ์ถ์ด ์ฃผ์์ ๋ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋ฉ๋๋ค. ์ด๊ฒ์ด ๊ฒํฐ์ ๊ด๋ฒ์ํ ์ฌ์ฉ์ ๋ฐ๋ฅธ ๋ฌธ์ ์ด๋ฉฐ, ์ธ๋ผ์ธ๋์ง ์์ ์ด์ ๋ ๊ฒํฐ์ธ์ง ์ฌ๋ถ๊ฐ ๋ช
ํํ์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๋งค์ฐ ์์ ์ฝ๋ ๊ธฐ๋ฐ์ด ์๋ ๊ฒฝ์ฐ ๊ฐ๋จํ ๊ธฐ์ตํ๊ณ ๋ค์๊ณผ ๊ฐ์ด ๋งํ ์ ์์ต๋๋ค. ์ด๊ฒ์ getter์ด๊ณ ์ด๊ฒ์ setter์
๋๋ค. ๋๊ท๋ชจ ์ฝ๋ ๋ฒ ์ด์ค์์ ๊ฐ ํจ์๋ ์ผ๋ฐ์ ์ผ๋ก ๋๊ตฌ์๊ฒ๋ ์๋ ค์ง์ง ์์ ๊ณ ์ ํ ๊ธฐ๋ก์ ์ ์งํฉ๋๋ค. ํ๋กํ์ผ๋ฌ๋ ์ฐ๋ฆฌ๊ฐ ์ผ๋ถ ๋ฃจํ์์ 24%์ ์๊ฐ์ ์์๋ค๊ณ ๋งํ๊ณ ์ด ๋ฃจํ๊ฐ ์ํํ๋ ์์
์ ์ดํดํ๋ ค๋ฉด ๋ด๋ถ์ ๊ฐ ํจ์๋ฅผ ์ดํด๋ด์ผ ํฉ๋๋ค. ๊ธฐ๋ฅ์ ๊ณต๋ถํ์ง ์๊ณ ๋ ์ด๊ฒ์ ์ดํดํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ฉฐ, ์ด๋ก ์ธํด ์ดํด ๊ณผ์ ์ด ์ฌ๊ฐํ๊ฒ ๋๋ ค์ง๋๋ค. ๊ทธ๋์ ๋๋ getter์ setter๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์๋ก์ด ์์ค์ ๋๋ฌํ์ต๋๋ค!
๋น์ฉ ๋ชจ๋ธ์ ์ด๋์ ๊ตฌํ ์ ์๋์? ๋ฌผ๋ก ๋ญ๊ฐ๋ฅผ ์ฝ์ ์๋ ์๊ฒ ์ง๋ง... ํ์ง๋ง ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ํ๋ํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์์ ์ปดํ์ผ๋ฌ๋ฅผ ๋ง๋๋ ๊ฒ์ด ๋น์ฉ ๋ชจ๋ธ์ ์ดํดํ๊ณ ์ด๋ฅผ ์์ ์ ๋จธ๋ฆฌ์ ๋ง์ถ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ด ๋ ๊ฒ์
๋๋ค. ์ ์๋ ์ธ์ง ํ๋ก๊ทธ๋๋ฐ์ ์ ํฉํ ์์ ์ปดํ์ผ๋ฌ๋ ์ด๋ณด์๋ฅผ ์ํ ์์
์
๋๋ค. ๊ธ์, ๋ด ๋ง์, ์ด๋ฏธ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ ์ ๊ฐ๊ณ ์๋ค๋ฉด ๊ทธ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ๋ค๋ ๋ป์ด๋ค. ์ผ์ข
์ ๋์์์ผ๋ก ๊ฐ์ง๊ณ ์๋ ๋ฌธ์์ด์ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ , ๊ฑฐ๊ธฐ์์ ์ฌ๋ฐ๋ฅธ ์์๋ก ์ํ ์ฐ์ฐ์ ๋ํ ์ง์นจ์ ์ถ์ถํ๊ณ , ๋ ์ง์คํฐ์์ ์ฌ๋ฐ๋ฅธ ๊ฐ์ ๊ฐ์ ธ์ค๋ ๋ฑ ์ด ๋ชจ๋ ์์
์ด ํ ๋ฒ์ ์ํ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ๊ฒ ํ๋ ๋์ ๊ทธ๊ฒ์ ๋์ ๊ฐ์ธ๋ ๊ฒ์
๋๋ค. ๋๋ ๋ชจ๋๊ฐ ์ปดํ์ผ๋ฌ๊ฐ ๋ฌด์์ ํ๋์ง ์๊ณ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ํตํด ๋น์ฉ ๋ชจ๋ธ์ ์ดํดํ ์ ์์ต๋๋ค.
์ฑ๋ฅ ํฅ์์ ์ค์ ์ฌ๋ก
์ค๋๋ฅ: ์์ฐ์ฑ์ ์ํด ์์ ํ ๋ ๋ ์ด๋ค ์ ์ ์ฃผ์ํด์ผ ํ ๊น์?
๋ญ๋ ๋ฌ์ง: ๋ฐ์ดํฐ ๊ตฌ์กฐ. ๊ทธ๊ฑด ๊ทธ๋ ๊ณ , ๋ค, ์ ๋ ์ด ์์
์ ์ค๋ซ๋์ ๊ฐ๋ฅด์น์ง ์์์ต๋๋ค...
์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ๋ถ๋ช
ํ๋ฉฐ ๋ณ๋ ฌ ์ปดํจํ
์ ๋์์ด ๋์ง ์์ต๋๋ค. ๊ทธ๋ ์ฃ ? ์ฌ๋ฐ๋ฅธ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ํํ๊ธฐ๋ง ํ๋ฉด ์ฑ๋ฅ์ด XNUMX๋ฐฐ ํฅ์๋ ์ ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์๋ จ๋ ํ๋ก๊ทธ๋๋จธ๋ค์กฐ์ฐจ ๋๋ผ๊ฒ ํฉ๋๋ค! ๋ด ํน๋ณํ ๊ฒฝ์ฐ์๋ ํซ ๋ฃจํ์์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ํด์๋ ์ ๋๋ค๋ ๊ฒ์ด ๋น๊ฒฐ์ด์์ต๋๋ค. ๊ธ์, ์ด๊ฒ์ด ์ ์ฒด ์ง์ค์ ์๋์ง๋ง ์ผ๋ฐ์ ์ผ๋ก X๊ฐ ์ถฉ๋ถํ ํด ๋ "X์ ํ ๋ฒ"์ ๊ฐ์กฐ ํ์ํด์๋ ์๋ฉ๋๋ค. X๊ฐ XNUMXGB์ธ ๊ฒฝ์ฐ "๋ฌธ์๋น ํ ๋ฒ", "๋ผ์ธ๋น ํ ๋ฒ", "ํ๋๋น ํ ๋ฒ" ๋ฑ์ ํ ๋นํด์๋ ์ ๋ฉ๋๋ค. ์ด๊ฒ์ ์๊ฐ์ด ์๋น๋๋ ๊ณณ์
๋๋ค. ์ด๊ฒ์ ์ด๋ป๊ฒ ์๋ํฉ๋๊น? ๋ด๊ฐ ์ ํ๋ฅผ ํ๋ค๊ณ ์์ํด ๋ณด์ธ์ String.split()
๋๋ BufferedReader.readLine()
. Readline
์์ต ๊ฐ์ ๋ผ์ธ ๊ฐ๊ฐ์ ๋ํด ๊ฐ ๋ผ์ธ์ ๋ํด ํ ๋ฒ์ฉ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ๊ณต๋ ๋ฐ์ดํธ ์ธํธ์์ ๋ฌธ์์ด์ ๋ง๋ญ๋๋ค. ๋๋ ์ด ์ค์ ๊ฐ์ ธ๋ค๊ฐ ๋ถ์ํ๊ณ ๋ฒ๋ฆฝ๋๋ค. ์ ๋ฒ๋ฆฌ๋ ๊ฑธ๊น์? ์ด๋ฏธ ์ฒ๋ฆฌํ์ผ๋ ๊ทธ๊ฒ ๋ค์
๋๋ค. ๋ฐ๋ผ์ ์ด 2.7G์์ ์ฝ์ ๊ฐ ๋ฐ์ดํธ์ ๋ํด ๋ ๋ฌธ์, ์ฆ ์ด๋ฏธ 5.4G๊ฐ ์ค์ ๊ธฐ๋ก๋๋ฉฐ ๋ ์ด์ ํ์ํ์ง ์์ผ๋ฏ๋ก ๋ฒ๋ ค์ง๋๋ค. ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ์ ์ดํด๋ณด๋ฉด ํ๋ก์ธ์์ ๋ฉ๋ชจ๋ฆฌ์ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์ค๋ฅผ ํต๊ณผํ๋ 2.7G๋ฅผ ๋ก๋ํ ๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ์๋ ๋ผ์ธ์ ๋ ๋ฐฐ์ ์์ด ์ ์ก๋๊ณ , ์๋ก์ด ๋ผ์ธ์ด ์์ฑ๋ ๋๋ง๋ค ์ด ๋ชจ๋ ๊ฒ์ด ๋ณ์ ์์ด์ง๋๋ค. ํ์ง๋ง ์ฝ์ด์ผ ํฉ๋๋ค. ๋์ค์ ๋ชจ๋ ๊ฒ์ด ๋ณ๋๋ผ๋ ํ๋์จ์ด๋ ๊ทธ๊ฒ์ ์ฝ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ผ์ธ์ ํ๋ ๋ง๋ค์๋๋ ์บ์๊ฐ ๊ฝ ์ฐจ์ ์ ์ด์ผ ํฉ๋๋ค. ์บ์๊ฐ 2.7G๋ฅผ ์์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ด๊ฐ ์ฝ๋ ๋ชจ๋ ๋ฐ์ดํธ์ ๋ํด 4๋ฐ์ดํธ๋ฅผ ๋ ์ฝ๊ณ 1๋ฐ์ดํธ๋ฅผ ๋ ์ฐ๊ฒ ๋๋ฉฐ ๊ฒฐ๊ตญ XNUMX:XNUMX ๋น์จ์ด ๋ฉ๋๋ค. ์ด ๋น์จ์์๋ ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ์ ๋ญ๋นํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ๊ทธ๋ ๊ฒ ํ๋ฉด String.split()
โ ์ด๋ฒ์ด ๋ง์ง๋ง์ด ์๋๋๋ค. ๋ด๋ถ์ 6~7๊ฐ์ ํ๋๊ฐ ๋ ์์ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ CSV๋ฅผ ์ฝ์ ๋ค์ ๋ฌธ์์ด์ ๊ตฌ๋ฌธ ๋ถ์ํ๋ ๊ณ ์ ์ ์ธ ์ฝ๋๋ ์ค์ ๋ก ์ํ๋ ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ์ ๋นํด ์ฝ 14:1์ ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ ๋ญ๋น๋ฅผ ์ด๋ํฉ๋๋ค. ์ด๋ฌํ ์ ํ ์ฌํญ์ ๋ฒ๋ฆฌ๋ฉด ์๋๊ฐ XNUMX๋ฐฐ ํฅ์๋ ์ ์์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ๊ฒ ์ด๋ ต์ง๋ ์์ต๋๋ค. ์ฝ๋๋ฅผ ์ฌ๋ฐ๋ฅธ ๊ฐ๋์์ ๋ณด๋ฉด ๋ฌธ์ ๋ฅผ ๊นจ๋ซ๊ณ ๋๋ฉด ๋ชจ๋ ๊ฒ์ด ๋งค์ฐ ๊ฐ๋จํด์ง๋๋ค. ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์์ ํ ์ค๋จํด์๋ ์ ๋ฉ๋๋ค. ์ ์ผํ ๋ฌธ์ ๋ ๋ฌด์ธ๊ฐ๋ฅผ ํ ๋นํ๋ฉด ์ฆ์ ์ข
๋ฃ๋๊ณ ๊ทธ ๊ณผ์ ์์ ์ค์ํ ๋ฆฌ์์ค(์ด ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ)๊ฐ ์๋ชจ๋๋ค๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋ชจ๋ ๊ฒ์ด ์์ฐ์ฑ ์ ํ๋ก ์ด์ด์ง๋๋ค. x86์์๋ ์ผ๋ฐ์ ์ผ๋ก ํ๋ก์ธ์ ์ฃผ๊ธฐ๋ฅผ ์ ๊ทน์ ์ผ๋ก ์๋ชจํด์ผ ํ์ง๋ง ์ฌ๊ธฐ์๋ ํจ์ฌ ๋ ์ผ์ฐ ๋ชจ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ชจํฉ๋๋ค. ํด๊ฒฐ์ฑ
์ ๋ฐฉ์ ๋์ ์ค์ด๋ ๊ฒ์
๋๋ค.
๋ฌธ์ ์ ๋ ๋ค๋ฅธ ๋ถ๋ถ์ ๋ฉ๋ชจ๋ฆฌ ์คํธ๋ผ์ดํ๊ฐ ๋ถ์กฑํ ๋ ํ๋กํ์ผ๋ฌ๋ฅผ ์คํํ๋ฉด ์ผ๋ฐ์ ์ผ๋ก ์บ์๊ฐ ๋ฐฉ๊ธ ์์ฑํ ๋ชจ๋ ๋ผ์ธ์ผ๋ก ๊ฐ๋ ์ฐจ ์๊ธฐ ๋๋ฌธ์ ์บ์๊ฐ ๋ค์ ๋์์ฌ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ค๋ ๊ฒ์
๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ๋ก๋ ๋๋ ์ ์ฅ ์์
์ ์บ์ ๋๋ฝ์ผ๋ก ์ด์ด์ง๊ธฐ ๋๋ฌธ์ ๋๋ ค์ง๋๋ค. ์ ์ฒด ์บ์๊ฐ ๋๋ ค์ง๊ณ ์ฐ๋ ๊ธฐ๊ฐ ๋ ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ํ๋กํ์ผ๋ฌ๋ ์ ์ฒด ๋ฃจํ์ ๊ฑธ์ณ ๋ฐ๋ปํ ๋ฌด์์ ๋
ธ์ด์ฆ๊ฐ ๋ฒ์ง ๊ฒ์ผ๋ก ํ์ํฉ๋๋ค. ์ฝ๋์ ๋ณ๋์ ํซ ๋ช
๋ น์ด๋ ์์น๊ฐ ์์ต๋๋ค. ์์ ๋ง. ๊ทธ๋ฆฌ๊ณ GC ์ฃผ๊ธฐ๋ฅผ ์ดํด๋ณด๋ฉด ๋ชจ๋ Young Generation์ด๋ฉฐ ์ด๊ณ ์(์ต๋ ๋ง์ดํฌ๋ก์ด ๋๋ ๋ฐ๋ฆฌ์ด)์
๋๋ค. ๊ฒฐ๊ตญ, ์ด ๋ชจ๋ ๊ธฐ์ต์ ์ฆ์ ์ฌ๋ผ์ง๋๋ค. ์์ญ์ต ๊ธฐ๊ฐ๋ฐ์ดํธ๋ฅผ ํ ๋นํ๋ฉด ๊ทธ๋ ์๋ฅด๊ณ ์๋ฅด๊ณ ๋ ์๋ฅด๊ณ . ์ด ๋ชจ๋ ์ผ์ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ผ์ด๋ฉ๋๋ค. ์ ๋ ดํ GC ์ฃผ๊ธฐ, ์ ์ฒด ์ฃผ๊ธฐ์ ๊ฑธ์ณ ๋ฐ๋ปํ ๋
ธ์ด์ฆ๊ฐ ์๋ ๊ฒ์ผ๋ก ๋ฐํ์ก์ง๋ง ์ฐ๋ฆฌ๋ 5๋ฐฐ์ ์๋ ํฅ์์ ์ํฉ๋๋ค. ์ด ์๊ฐ ๋จธ๋ฆฟ์์์ ๋ฌด์ธ๊ฐ๊ฐ ๋ซํ๊ณ ์๋ฆฌ๊ฐ ๋ค๋ฆด ๊ฒ์
๋๋ค. "์ด๊ฒ ์?!" ๋ฉ๋ชจ๋ฆฌ ์คํธ๋ฆฝ ์ค๋ฒํ๋ก๋ ํด๋์ ๋๋ฒ๊ฑฐ์ ํ์๋์ง ์์ผ๋ฏ๋ก ํ๋์จ์ด ์ฑ๋ฅ ์นด์ดํฐ ๋๋ฒ๊ฑฐ๋ฅผ ์คํํ์ฌ ์ง์ ํ์ธํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ์ธ ๊ฐ์ง ์ฆ์๋ง์ผ๋ก๋ ์ด๋ฅผ ์ง์ ์ ์ผ๋ก ์์ฌํ ์๋ ์์ต๋๋ค. ์ธ ๋ฒ์งธ ์ฆ์์ ๊ฐ์กฐ ํ์ํ ๋ด์ฉ์ ๋ณด๊ณ ํ๋กํ์ผ๋ฌ์๊ฒ ๋ฌผ์ด๋ณด๋ฉด "๋น์ ์ ์์ญ์ต ๊ฐ์ ํ์ ๋ง๋ค์์ง๋ง GC๋ ๋ฌด๋ฃ๋ก ์๋ํ์ต๋๋ค."๋ผ๊ณ ๋๋ตํ๋ ๊ฒ์
๋๋ค. ์ด๋ฐ ์ผ์ด ๋ฐ์ํ์๋ง์ ๋น์ ์ ๋๋ฌด ๋ง์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ ๋ ์ธ์ ํ์๋ฒ๋ ธ๋ค๋ ๊ฒ์ ๊นจ๋ซ๊ฒ ๋ฉ๋๋ค. ์ด๋ฅผ ์์๋ผ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ง๋ง ๋ช
ํํ์ง๋ ์์ต๋๋ค.
๋ฌธ์ ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์์ต๋๋ค. ๋ฐ์ํ๋ ๋ชจ๋ ์ผ์ ๊ธฐ๋ฐ์ด ๋๋ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ ๋๋ฌด ํฌ๊ณ ๋์คํฌ์ ์ฉ๋์ 2.7G์ด๋ฏ๋ก ์ด ๋ณต์ฌ๋ณธ์ ๋ง๋๋ ๊ฒ์ ๋งค์ฐ ๋ฐ๋์งํ์ง ์์ต๋๋ค. ๋คํธ์ํฌ ๋ฐ์ดํธ ๋ฒํผ์์ ์ฆ์ ๋ก๋ํ๋ ค๊ณ ํฉ๋๋ค. ๋ผ์ธ์ ๋ค์ฏ ๋ฒ ์๋ค๋ก ์ฝ๊ณ ์ฐ์ง ์๋๋ก ๋ ์ง์คํฐ์ ๋ฃ์ต๋๋ค. ๋ถํํ๊ฒ๋ Java๋ ๊ธฐ๋ณธ์ ์ผ๋ก JDK์ ์ผ๋ถ๋ก ์ด๋ฌํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํ์ง ์์ต๋๋ค. ํ์ง๋ง ์ด๊ฑด ์ฌ์ํ ์ผ์ด์์์? ๊ธฐ๋ณธ์ ์ผ๋ก ์ด๋ ๊ธฐ๋ณธ ๋ฐ์ดํธ ๋ฒํผ ์ฃผ์์ ๋ํผ ์ญํ ์ ํ๋ฉด์ ๋ฌธ์์ด ํด๋์ค์ ๋์์ ๋ฐ๋ณตํ๋ ์์ฒด ๋ฒํผ๋ง๋ ๋ฌธ์์ด ๋ก๋๋ฅผ ๊ตฌํํ๋ ๋ฐ ์ฌ์ฉ๋๋ 5~10์ค์ ์ฝ๋์
๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ฑฐ์ ๋ฌธ์์ด์ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ ์์
ํ๊ณ ์์ง๋ง ์ค์ ๋ก๋ ๋ฒํผ์ ๋ํ ํฌ์ธํฐ๊ฐ ๊ทธ๊ณณ์ผ๋ก ์ด๋ํ๊ณ ์์ ๋ฐ์ดํธ๊ฐ ์ด๋์๋ ๋ณต์ฌ๋์ง ์์ผ๋ฏ๋ก ๋์ผํ ๋ฒํผ๊ฐ ๊ณ์ํด์ ์ฌ์ฌ์ฉ๋ฉ๋๋ค. ์ด์ ์ฒด์ ๋ ์ด๋ฌํ ๋ฐ์ดํธ ๋ฒํผ์ ์จ๊ฒจ์ง ์ด์ค ๋ฒํผ๋ง๊ณผ ๊ฐ์ด ์ค๊ณ๋ ์์
์ ์ค์ค๋ก ์ํํ๋ฏ๋ก ๋ ์ด์ ๋ถํ์ํ ๋ฐ์ดํฐ์ ๋์๋ ์คํธ๋ฆผ์ ํค์ณ ๋๊ฐ์ง ์์๋ ๋ฉ๋๋ค. ๊ทธ๋ฐ๋ฐ GC๋ก ์์
ํ ๋ ๋ง์ง๋ง GC ์ฃผ๊ธฐ ์ดํ ๊ฐ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ํ๋ก์ธ์์ ํ์๋์ง ์๋๋ค๋ ๊ฒ์ด ๋ณด์ฅ๋๋ค๋ ์ ์ ์ดํดํ์๋์? ๋ฐ๋ผ์ ์ด ๋ชจ๋ ๊ฒ์ด ์บ์์ ์์ ์ ์์ผ๋ฉฐ 100% ๋ณด์ฅ๋ ๋๋ฝ์ด ๋ฐ์ํฉ๋๋ค. x86์์ ํฌ์ธํฐ๋ก ์์
ํ ๋ ๋ฉ๋ชจ๋ฆฌ์์ ๋ ์ง์คํฐ๋ฅผ ๋นผ๋ ๋ฐ๋ 1-2 ํด๋ญ ์ฌ์ดํด์ด ๊ฑธ๋ฆฌ๊ณ , ์ด ์ผ์ด ๋ฐ์ํ์๋ง์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ชจ๋ ์ผ์ ธ ์๊ธฐ ๋๋ฌธ์ ์ง๋ถํ๊ณ ์ง๋ถํ๊ณ ์ง๋ถํฉ๋๋ค.
์ฆ, ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ๋ณ๊ฒฝํ๊ธฐ ๊ฐ์ฅ ์ด๋ ค์ด ๊ฒ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ค์ ์ฑ๋ฅ์ ์ ํ์ํฌ ์๋ชป๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ํํ๋ค๋ ์ฌ์ค์ ๊นจ๋ซ๊ณ ๋๋ฉด ์ผ๋ฐ์ ์ผ๋ก ์ํํด์ผ ํ ์์ ์ด ๋ง์ง๋ง ๊ทธ๋ ์ง ์์ผ๋ฉด ์ํฉ์ด ๋์ฑ ์ ํ๋ฉ๋๋ค. ์ฐ์ , ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ํด ์๊ฐํด์ผ ํฉ๋๋ค. ์ด๊ฒ์ด ์ค์ํฉ๋๋ค. ์ฌ๊ธฐ์ ์ฃผ์ ๋น์ฉ์ "Y์ ๋ชจ์์ด ๋ ์ข๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ X๋ฅผ ๋ฐ์ดํฐ ๊ตฌ์กฐ Y์ ๋ณต์ฌํ์ต๋๋ค."๋ผ๋ ์คํ์ผ๋ก ์ฌ์ฉ๋๊ธฐ ์์ํ ๋ฑ๋ฑํ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ณต์ฌ ์์ (์ ๋ ดํด ๋ณด์ด๋)์ ์ค์ ๋ก ๋ฉ๋ชจ๋ฆฌ ๋์ญํญ์ ๋ญ๋นํ๋ฉฐ ๋ญ๋น๋๋ ์คํ ์๊ฐ์ด ๋ชจ๋ ์ฌ๊ธฐ์ ๋ฌปํ ์์ต๋๋ค. ๊ฑฐ๋ํ JSON ๋ฌธ์์ด์ด ์๊ณ ์ด๋ฅผ POJO ๋ฑ์ ๊ตฌ์กฐํ๋ DOM ํธ๋ฆฌ๋ก ๋ณํํ๋ ค๋ ๊ฒฝ์ฐ ํด๋น ๋ฌธ์์ด์ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ POJO๋ฅผ ๋น๋ํ ๋ค์ ๋์ค์ ๋ค์ POJO์ ์ก์ธ์คํ๋ ์์ ์ ๋ถํ์ํ ๋น์ฉ์ ์ด๋ํฉ๋๋ค. ์ ๋ ดํ์ง ์์ต๋๋ค. POJO๋ฅผ ๋ฌธ์์ด ์ฃผ์์์ ์คํํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ์์ฃผ ์คํํ๋ ๊ฒฝ์ฐ๋ ์ ์ธ๋ฉ๋๋ค. ๋์ POJO๋ก ๋ณํํ์ง ์๊ณ ๋ฌธ์์ด์ ํด๋ ํ๊ณ ๊ฑฐ๊ธฐ์์ ํ์ํ ๊ฒ๋ง ์ถ์ถํ ์ ์์ต๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ด ์ต๋ ์ฑ๋ฅ์ด ํ์ํ ๊ฒฝ๋ก์์ ๋ฐ์ํ๊ณ POJO๊ฐ ์์ผ๋ฉด ์ด๋ป๊ฒ๋ ์ง์ ๋ผ์ธ์ ํํค์ณ์ผ ํฉ๋๋ค.
์์ ๋ง์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ง๋๋ ์ด์
์ค๋๋ฅ: ๋น์ฉ ๋ชจ๋ธ์ ์ดํดํ๋ ค๋ฉด ์์ ๋ง์ ์์ ์ธ์ด๋ฅผ ์์ฑํด์ผ ํ๋ค๊ณ ํ์ จ๋๋ฐโฆ
๋ญ๋ ๋ฌ์ง: ์ธ์ด๊ฐ ์๋๋ผ ์ปดํ์ผ๋ฌ์ ๋๋ค. ์ธ์ด์ ์ปดํ์ผ๋ฌ๋ ์๋ก ๋ค๋ฅธ ๊ฒ์ ๋๋ค. ๊ฐ์ฅ ์ค์ํ ์ฐจ์ด์ ์ ๋จธ๋ฆฌ์ ์์ต๋๋ค.
์ค๋๋ฅ: ๊ทธ๋ฐ๋ฐ ์ ๊ฐ ์๋ ํ, ๋น์ ์ ์์ ๋ง์ ์ธ์ด๋ฅผ ๋ง๋๋ ์คํ์ ํ๊ณ ์๋ ๊ฒ์ผ๋ก ์๊ณ ์์ต๋๋ค. ๋ฌด์์ ์ํด?
๋ญ๋ ๋ฌ์ง: ํ ์ ์์ผ๋๊น! ๋๋ ๋ฐ์ฏค ์ํดํ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ๋ด ์ทจ๋ฏธ์ ๋๋ค. ๋๋ ํ์ ๋์ ๋ค๋ฅธ ์ฌ๋์ ์ธ์ด๋ฅผ ๊ตฌํํด ์์ต๋๋ค. ๋๋ ๋ํ ๋ด ์ฝ๋ฉ ์คํ์ผ์ ๋ง์ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์์ต๋๋ค. ๋ํ ๋ค๋ฅธ ์ธ์ด์๋ ๋ฌธ์ ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ต์ํ ์ผ์ ํ๋ ๋ฐ ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ๊ทธ๊ฒ์ ์ฌ์ฉํ ๊ฒ์ ๋๋ค. ๋๋ ์๋ฐ, ํ์ด์ฌ, ๋ค๋ฅธ ์ธ์ด์์ ๋ ์์ ์ ๋ฌธ์ ๋ฅผ ๋ณด๋ ๊ฒ์ ์ง์ณค์ต๋๋ค. ์ด์ ๋ ์ํด๊ฐ ์๋ ํ๋ฐํ ํ๋์ ์ํ ์ทจ๋ฏธ๋ก React Native, JavaScript, Elm์ผ๋ก ๊ธ์ ์ฐ๊ณ ์์ต๋๋ค. ๋๋ ๋ํ Python์ผ๋ก ๊ธ์ ์ฐ๊ณ ์์ผ๋ฉฐ ์๋ง๋ Java ๋ฐฑ์๋๋ฅผ ์ํ ๊ธฐ๊ณ ํ์ต ์์ ์ ๊ณ์ํ ๊ฒ์ ๋๋ค. ๋๋ฆฌ ์ฌ์ฉ๋๋ ์ธ์ด๊ฐ ๋ง์ด ์์ผ๋ฉฐ ๋ชจ๋ ํฅ๋ฏธ๋ก์ด ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋ชจ๋ ์ฌ๋์ ๊ฐ์์ ๋ฐฉ์์ผ๋ก ํ๋ฅญํ๋ฉฐ ์ด๋ฌํ ๋ชจ๋ ๊ธฐ๋ฅ์ ํ๋๋ก ํตํฉํ๋ ค๊ณ ๋ ธ๋ ฅํ ์ ์์ต๋๋ค. ๊ทธ๋์ ์ ๋ ๊ด์ฌ ์๋ ๊ฒ, ์ฆ ์ธ์ด์ ํ๋์ ์ฐ๊ตฌํ๊ณ ํฉ๋ฆฌ์ ์ธ ์๋ฏธ๋ก ์ ์ฐพ์๋ด๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ง๊ธ๊น์ง ๋๋ ์ฑ๊ณตํ๊ณ ์์ต๋๋ค! ํ์ฌ ์ ๋ ๋ฉ๋ชจ๋ฆฌ ์๋ฏธ๋ก ์ ์ด๋ ค์์ ๊ฒช๊ณ ์์ต๋๋ค. C์ Java์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ ์๋ฏธ๋ก ์ ๊ฐ๊ณ ๋ก๋์ ์ ์ฅ์ ์ํ ๊ฐ๋ ฅํ ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ธ๊ณผ ๋ฉ๋ชจ๋ฆฌ ์๋ฏธ๋ก ์ ์ป๊ณ ์ถ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋์์ Haskell์ฒ๋ผ ์๋ ์ ํ ์ถ๋ก ๋ ๊ฐ๋ฅํฉ๋๋ค. ์ฌ๊ธฐ์๋ Haskell๊ณผ ์ ์ฌํ ์ ํ ์ถ๋ก ์ C์ Java์ ๋ฉ๋ชจ๋ฆฌ ์์ ๊ณผ ํผํฉํ๋ ค๊ณ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์ด๊ฒ์ด ์ ๊ฐ ์ง๋ 2~3๊ฐ์ ๋์ ํด์จ ์ผ์ ๋๋ค.
์ค๋๋ฅ: ๋น์ ์ด ๋ค๋ฅธ ์ธ์ด์ ๋ ๋์ ์ธก๋ฉด์ ์ทจํ๋ ์ธ์ด๋ฅผ ๋ง๋ ๋ค๋ฉด, ๋๊ตฐ๊ฐ๋ ๊ทธ ๋ฐ๋์ ์ผ์ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๊น? ์ฆ, ๋น์ ์ ์์ด๋์ด๋ฅผ ์ทจํ๊ณ ๊ทธ๊ฒ์ ์ฌ์ฉํ ๊ฒ์ ๋๊น?
๋ญ๋ ๋ฌ์ง: ์ด๊ฒ์ด ๋ฐ๋ก ์๋ก์ด ์ธ์ด๊ฐ ๋ํ๋๋ ๋ฐฉ์์ ๋๋ค! Java๊ฐ C์ ์ ์ฌํ ์ด์ ๋ ๋ฌด์์ ๋๊น? C์๋ ๋ชจ๋๊ฐ ์ดํดํ ์ ์๋ ์ข์ ๊ตฌ๋ฌธ์ด ์์๊ณ Java๋ ์ด ๊ตฌ๋ฌธ์์ ์๊ฐ์ ๋ฐ์ ์ ํ ์์ ์ฑ, ๋ฐฐ์ด ๋ฒ์ ๊ฒ์ฌ, GC๋ฅผ ์ถ๊ฐํ์ผ๋ฉฐ C์์ ๋ช ๊ฐ์ง ์ฌํญ๋ ๊ฐ์ ํ์ต๋๋ค. ๊ทธ๋ค์ ์์ ์ ๊ฒ์ ์ถ๊ฐํ์ต๋๋ค. ํ์ง๋ง ๊ทธ๋ค์ ๊ฝค ๋ง์ ์๊ฐ์ ๋ฐ์์ฃ ? ๋ชจ๋๊ฐ ๋น์ ๋ณด๋ค ๋จผ์ ์จ ๊ฑฐ์ธ์ ์ด๊นจ ์์ ์ ์์ต๋๋ค. ๊ทธ๊ฒ์ด ๋ฐ์ ์ด ์ด๋ฃจ์ด์ง๋ ๋ฐฉ์์ ๋๋ค.
์ค๋๋ฅ: ๋ด๊ฐ ์ดํดํ๋ ๋ฐ์ ๋ฐ๋ฅด๋ฉด, ๊ทํ์ ์ธ์ด๋ ๋ฉ๋ชจ๋ฆฌ์ ์์ ํ ๊ฒ์ ๋๋ค. Rust์ ๋น๋ฆผ ๊ฒ์ฌ๊ธฐ์ ๊ฐ์ ๊ฒ์ ๊ตฌํํ๋ ๊ฒ์ ๋ํด ์๊ฐํด ๋ณด์ จ๋์? ๊ทธ๋ฅผ ๋ณด์ จ๋์? ๊ทธ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์๋์?
๋ญ๋ ๋ฌ์ง: ๊ธ์์, ์ ๋ ์ด ๋ชจ๋ malloc๊ณผ ๋ฌด๋ฃ๋ฅผ ํฌํจํ๊ณ ์๋ช
์ ์๋์ผ๋ก ๊ด๋ฆฌํ๋ฉด์ ์ค๋ซ๋์ C๋ฅผ ์์ฑํด ์์ต๋๋ค. ์๋์ผ๋ก ์ ์ด๋๋ ์๋ช
์ 90~95%๋ ๋์ผํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋์ผ๋ก ์ํํ๋ ๊ฒ์ ๋งค์ฐ ๊ณ ํต์ค๋ฝ์ต๋๋ค. ๋๋ ์ปดํ์ผ๋ฌ๊ฐ ๊ฑฐ๊ธฐ์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง, ๊ทธ๋ฆฌ๊ณ ๋น์ ์ ํ๋์ผ๋ก ๋ฌด์์ ์ฑ์ทจํ๋์ง ๊ฐ๋จํ ๋งํด ์ฃผ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ์ด๋ค ๊ฒฝ์ฐ์๋ ๋น๋ฆผ ๊ฒ์ฌ๊ธฐ๊ฐ ์ด ์์
์ ์ฆ์ ์ํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋์ผ๋ก ์ ๋ณด๋ฅผ ํ์ํ๊ณ , ๋ชจ๋ ๊ฒ์ ์ดํดํด์ผ ํ๋ฉฐ, ์ด๋ฌํ ์ดํด๋ฅผ ์ ์ํ๋ ๋ฐ ๋ถ๋ด์ ์ฃผ์ง๋ ์์์ผ ํฉ๋๋ค. ์ต์ํ ๋ก์ปฌ ์ด์ค์ผ์ดํ ๋ถ์์ ์ํํด์ผ ํ๋ฉฐ, ์คํจํ ๊ฒฝ์ฐ์๋ง ์๋ช
์ ์ค๋ช
ํ๋ ์ ํ ์ฃผ์์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์ฒด๊ณ๋ ๋น๋ฆผ ๊ฒ์ฌ๊ธฐ๋ ์ค์ ๋ก ๊ธฐ์กด ๋ฉ๋ชจ๋ฆฌ ๊ฒ์ฌ๊ธฐ๋ณด๋ค ํจ์ฌ ๋ ๋ณต์กํฉ๋๋ค. "๋ชจ๋ ๊ฒ์ด ๊ด์ฐฎ์์"์ "์๋ฌด๊ฒ๋ ์ดํด๊ฐ ์ ๋ผ์" ์ฌ์ด์ ์ ํ - ์๋, ๋ ๋์ ๊ฒ์ด ์์ด์ผํฉ๋๋ค.
๊ทธ๋์ C๋ก ๋ง์ ์ฝ๋๋ฅผ ์์ฑํด ๋ณธ ์ฌ๋์ผ๋ก์ ์๋ ์๋ช
์ ์ด ๊ธฐ๋ฅ์ ์ง์ํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ๋ํ Java๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ผ๋ง๋ ๋ง์ด ์ฌ์ฉํ๋์ง์ ์ง๋ ค ์๊ณ ์ฃผ์ ๋ถ๋ง ์ฌํญ์ GC์
๋๋ค. Java์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ฉด ๋ง์ง๋ง GC ์ฃผ๊ธฐ์ ๋ก์ปฌ์ด์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ค์ ๊ฐ์ ธ์ค์ง ์์ต๋๋ค. ๋ณด๋ค ์ ํํ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ๊ฐ์ถ ์ธ์ด์์๋ ๊ทธ๋ ์ง ์์ต๋๋ค. malloc์ ํธ์ถํ๋ฉด ํ์ ๋ฐฉ๊ธ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฆ์ ์ป๊ฒ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ผ์์ ์ธ ์์
์ ์ํํ๊ณ ์ฆ์ ๋ค์ ๋ฐํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฆ์ malloc ํ๋ก ๋์๊ฐ๊ณ , ๋ค์ malloc ์ฃผ๊ธฐ์์ ๋ค์ ๊บผ๋ด์ต๋๋ค. ๋ฐ๋ผ์ ์ค์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ํน์ ์๊ฐ์ ์ด์์๋ ๊ฐ์ฒด ์งํฉ๊ณผ ๋์๋ก ์ค์ด๋ญ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๊ฒ์ด ์์ ํ ์ธ์ค์ ์ธ ๋ฐฉ์์ผ๋ก ๋์ถ๋์ง ์์ผ๋ฉด ๋๋ถ๋ถ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์บ์์ ํ๋ก์ธ์์ ๋ค์ด๊ฐ๊ณ ๋น ๋ฅด๊ฒ ์๋ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ๋ฐ๋ฅธ ์์น์์ ์ฌ๋ฐ๋ฅธ ์์๋ก ํธ์ถ๋๋ malloc ๋ฐ free๋ฅผ ์ฌ์ฉํ์ฌ ๋ง์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๊ฐ ํ์ํฉ๋๋ค. Rust๋ ์ด๋ฅผ ์์ฒด์ ์ผ๋ก ์ ์ ํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉฐ, ๋ง์ ๊ฒฝ์ฐ์ ํจ์ฌ ๋ ๋์ ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์๋น๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ณดํ๊ธฐ ์ํด ๋ค์ GC ์ฃผ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๊ฒ๊ณผ๋ ๋ฐ๋๋ก ํ์ฌ ๊ณ์ฐ์ผ๋ก๋ง ์ขํ์ง๊ธฐ ๋๋ฌธ์
๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ์ฐ๋ฆฌ๋ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๋ ๋งค์ฐ ํฅ๋ฏธ๋ก์ด ๋ฐฉ๋ฒ์ ์ป์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋งค์ฐ ๊ฐ๋ ฅํฉ๋๋ค. ํํ
ํฌ๋ฅผ ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ์ด๋ฌํ ์์
์ ์ํํ๊ณ ์ด๋ก ์ธํด ์ฝ XNUMX๋ฐฐ์ ์๋ ํฅ์์ ์ป์ ์ ์์์ต๋๋ค. ์ด๋ ํนํ ํ๋ก์ธ์๊ฐ ๋ ๋นจ๋ผ์ง์ง ์๊ณ ์ฌ์ ํ ๊ฐ์ ์ ๊ธฐ๋ค๋ฆฌ๊ณ ์๋ ์ธ์์์ ๋งค์ฐ ํฐ ํฅ์์
๋๋ค.
์ฑ๋ฅ ์์ง๋์ด ๊ฒฝ๋ ฅ
์ค๋๋ฅ: ์ ๋ฐ์ ์ธ ์ง์ ์ ๋ํด์๋ ์ฌ์ญค๋ณด๊ณ ์ถ์ต๋๋ค. HotSpot์์ JIT ์์ ์ผ๋ก ๋๊ฐ์ ๋ํ๋ธ ํ JVM ํ์ฌ์ธ Azul๋ก ์ฎ๊ฒผ์ต๋๋ค. ํ์ง๋ง ์ฐ๋ฆฌ๋ ์ด๋ฏธ ์ํํธ์จ์ด๋ณด๋ค ํ๋์จ์ด์ ๋ ๋ง์ ๋ ธ๋ ฅ์ ๊ธฐ์ธ์ด๊ณ ์์์ต๋๋ค. ๊ทธ๋ฌ๋ค๊ฐ ๊ฐ์๊ธฐ ๋น ๋ฐ์ดํฐ์ ๋จธ์ ๋ฌ๋์ผ๋ก ์ ํํ๋ค๊ฐ ์ฌ๊ธฐ ํ์ง๋ก ์ ํํ์ต๋๋ค. ์ด๋ป๊ฒ ์ด๋ฐ์ผ์ด ์ผ์ด ๋ฌ์ต๋๊น? ์ด๋ค์ ๋งค์ฐ ๋ค๋ฅธ ๊ฐ๋ฐ ์์ญ์ ๋๋ค.
๋ญ๋ ๋ฌ์ง: ์ ๋ ๊ฝค ์ค๋ซ๋์ ํ๋ก๊ทธ๋๋ฐ์ ํด์๊ณ ๋ค์ํ ์์ ์ ๋ง์ด ๋ค์ด์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๋๋ค์ด "์, ๋น์ ์ด Java์ฉ JIT๋ฅผ ํ ์ฌ๋์ด๊ตฐ์!"๋ผ๊ณ ๋งํ๋ฉด ํญ์ ์๊น๋๋ค. ํ์ง๋ง ๊ทธ ์ ์ ์ ๋ Apple์ด ํ๋ ๋ ์ด์ ํ๋ฆฐํฐ์ ์ฌ์ฉํ๋ ์ธ์ด์ธ PostScript ๋ณต์ ์์ ์ ํ๊ณ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์ ์ ์ ๋ Forth ์ธ์ด๋ฅผ ๊ตฌํํ์ต๋๋ค. ์ ์ ๊ณตํต ์ฃผ์ ๋ ๋๊ตฌ ๊ฐ๋ฐ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๋๋ ํ์ ๋์ ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ฉ์ง ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋๊ตฌ๋ฅผ ๋ง๋ค์ด ์์ต๋๋ค. ํ์ง๋ง ์ ๋ ์ด์ ์ฒด์ , ๋๋ผ์ด๋ฒ, ์ปค๋ ์์ค ๋๋ฒ๊ฑฐ, OS ๊ฐ๋ฐ์ฉ ์ธ์ด ๊ฐ๋ฐ์๋ ์ฐธ์ฌํ๋๋ฐ, ์ฒ์์๋ ์ฌ์ํ ์ผ์ด์์ง๋ง ์๊ฐ์ด ์ง๋๋ฉด์ ์ ์ ๋ ๋ณต์กํด์ก์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฃผ์ ์ฃผ์ ๋ ์ฌ์ ํ ๋๊ตฌ ๊ฐ๋ฐ์ ๋๋ค. ๋ด ์ธ์์ ํฐ ๋ถ๋ถ์ด Azul๊ณผ Sun ์ฌ์ด๋ฅผ ์ค๊ฐ๊ณ , ๊ทธ๊ฒ์ Java์ ๊ดํ ๊ฒ์ด์์ต๋๋ค. ํ์ง๋ง ๋น ๋ฐ์ดํฐ์ ๋จธ์ ๋ฌ๋์ ์ ๋ฌธํ์ ๋ ์ ๋ ๋ค์ ๋ฉ์ง ๋ชจ์๋ฅผ ์ฐ๊ณ ์ด๋ ๊ฒ ๋งํ์ต๋๋ค. "์, ์ด์ ์ฐ๋ฆฌ์๊ฒ๋ ์ฌ์ํ ๋ฌธ์ ๊ฐ ์๊ฒผ๋๋ฐ, ํฅ๋ฏธ๋ก์ด ์ผ์ด ๋ง์ด ์ผ์ด๋๊ณ ์ฌ๋๋ค์ด ์ผ์ ํ๊ณ ์์ต๋๋ค." ์ด๋ ํ๋ฅญํ ๊ฐ๋ฐ ๊ฒฝ๋ก์ ๋๋ค.
๋ค, ์ ๋ ๋ถ์ฐ ์ปดํจํ
์ ์ ๋ง ์ข์ํฉ๋๋ค. ๋์ ์ฒซ ๋ฒ์งธ ์ง์
์ ๊ด๊ณ ํ๋ก์ ํธ์์ C๋ฅผ ๊ณต๋ถํ๋ ํ์์ด์์ต๋๋ค. ์ด๋ ์ค์ ์๋ ๋ก๊ทธ ๋ถ์๊ธฐ๋ก ์์ฑ๋ ์๋ ๋ก๊ทธ OCR์ฉ ๋ฐ์ดํฐ๋ฅผ ์์งํ Zilog Z80 ์นฉ์ ๋ถ์ฐ ์ปดํจํ
์ด์์ต๋๋ค. ๊ทธ๊ฒ์ ์์ํ๊ณ ์์ ํ ๋ฏธ์น ์ฃผ์ ์์ต๋๋ค. ํ์ง๋ง ๋ฌธ์ ๊ฐ ์์๊ณ , ์ด๋ค ๋ถ๋ถ์ด ์ ๋๋ก ์ธ์๋์ง ์์์ ์ฌ์ง์ ๊บผ๋ด์ ์ด๋ฏธ ๋์ผ๋ก ์ฝ๊ณ ๋ด์ฉ์ ๋ณด๊ณ ํ ์ ์๋ ์ฌ๋์๊ฒ ๋ณด์ฌ์ค์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๊ฐ ์๋ ์ง์
์ด ์์๊ณ , ์ด๋ฐ ์ง์
์ด ์์์ต๋๋ค. ๊ทธ๋ค๋ง์ ์ธ์ด๊ฐ ์์๋ค. ์ด ๋ชจ๋ ๊ฒ์ ์ฒ๋ฆฌํ๋ ๋ฐฑ์๋๊ฐ ์์์ต๋๋ค. vt80 ํฐ๋ฏธ๋์ด ๋ณ๋ ฌ๋ก ์คํ๋๋ Z100์ 80์ธ๋น ํ๋์ฉ ์คํ๋์์ผ๋ฉฐ Z80์๋ ๋ณ๋ ฌ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ์ด ์์์ต๋๋ค. ์คํ ๊ตฌ์ฑ ๋ด์ ๋ชจ๋ Z80์ด ๊ณต์ ํ๋ ์ผ๋ถ ๊ณตํต ๋ฉ๋ชจ๋ฆฌ ์กฐ๊ฐ์
๋๋ค. ๋ฐฑํ๋ ์ธ๋ ๊ณต์ ๋์์ผ๋ฉฐ RAM์ ์ ๋ฐ์ ๋คํธ์ํฌ ๋ด์์ ๊ณต์ ๋์๊ณ ๋๋จธ์ง ์ ๋ฐ์ ๊ฐ์ธ์ฉ์ด๊ฑฐ๋ ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ด๋ํ์ต๋๋ค. ๊ณต์ ๋ ๋ฐ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ถ ์๋ฏธ์๊ณ ๋ณต์กํ ๋ณ๋ ฌ ๋ถ์ฐ ์์คํ
์
๋๋ค. ์ด๊ฒ ์ธ์ ์๋์ง... ๊ธฐ์ต๋ ์๋๋๋ฐ XNUMX๋
๋ ์ค๋ฐ์ฏค์ด์๋. ๊ฝค ์ค๋ ์ ์
๋๋ค.
๋ค, 30๋
์ด ๊ฝค ์ค๋ ์ ์ผ์ด๋ผ๊ณ ๊ฐ์ ํด ๋ด
์๋ค. ๋ถ์ฐ ์ปดํจํ
๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ๋ ๊ฝค ์ค๋ซ๋์ ์กด์ฌํด ์์ต๋๋ค.
์ ๊ฐ H2O์์ ์๊ฐํด๋ธ ๊ฒ์ ๋ณ๋ ฌ์ฑ์ด ์จ๊ฒจ์ ธ ์๋ ๊ณณ๊ณผ ๊ทธ๋ ์ง ์์ ๊ณณ์ ๊ฒฐ์ ํ๋ ์ฑ ์์ ๊ฐ๋ฐ์ ์์ ์ด๋ผ๋ ๊ฒ์ ๋๋ค. ๋๋ ๊ณ ์ฑ๋ฅ ์ฝ๋๋ฅผ ์ฝ๊ณ ๊ฐ๋จํ๊ฒ ์์ฑํ ์ ์๋ ์ฝ๋ฉ ๋ชจ๋ธ์ ์๊ฐํด๋์ต๋๋ค. ํ์ง๋ง ๋๋ฆฌ๊ฒ ์คํ๋๋ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ ์ด๋ ต์ต๋๋ค. ๋ณด๊ธฐ์๋ ์ข์ง ์์ ๊ฒ์ ๋๋ค. ๋๋ฆฐ ์ฝ๋๋ฅผ ์์ฑํ๋ ค๋ฉด ์ง์งํ๊ฒ ๋ ธ๋ ฅํด์ผ ํ๋ฉฐ, ๋นํ์ค ๋ฐฉ๋ฒ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ ๋ ์ฝ๋๋ ํ๋์ ๋ณด์ ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ผ๋ฐ์ ์ผ๋ก ๋น ๋ฅด๊ฒ ์คํ๋๋ ์ฝ๋๋ฅผ ์์ฑํ์ง๋ง ๊ณต์ ๋ฉ๋ชจ๋ฆฌ์ ๊ฒฝ์ฐ ์ด๋ป๊ฒ ํด์ผ ํ ์ง ํ์ ํด์ผ ํฉ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ ๋๊ท๋ชจ ๋ฐฐ์ด๊ณผ ์ฐ๊ฒฐ๋์ด ์์ผ๋ฉฐ ๋์์ ๋ณ๋ ฌ Java์ ๋นํ๋ฐ์ฑ ๋๊ท๋ชจ ๋ฐฐ์ด๊ณผ ์ ์ฌํฉ๋๋ค. ๋ด ๋ง์, ๋ ๊ฐ์ ์ค๋ ๋๊ฐ ๋ณ๋ ฌ ๋ฐฐ์ด์ ๊ธฐ๋กํ๊ณ ๊ทธ ์ค ํ๋๊ฐ ์น๋ฆฌํ๊ณ ๋ค๋ฅธ ์ค๋ ๋๊ฐ ๊ทธ์ ๋ฐ๋ผ ํจ๋ฐฐํ๋ฉฐ ์ด๋ ๊ฒ์ด ์ด๋ ๊ฒ์ธ์ง ์ ์ ์๋ค๊ณ ์์ํด๋ณด์ญ์์ค. ํ๋ฐ์ฑ์ด ์๋๋ผ๋ฉด ์ํ๋ ๋๋ก ์์๋ฅผ ์ ํ ์ ์์ผ๋ฉฐ ์ด๋ ์ ๋ง ์ ์๋ํฉ๋๋ค. ์ฌ๋๋ค์ ์์ ์์์ ํฐ ๊ด์ฌ์ ๊ฐ๊ณ ํ๋ฐ์ฑ์ ์ฌ๋ฐ๋ฅธ ์์น์ ๋ฐฐ์นํ๋ฉฐ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ จ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ฌ๋ฐ๋ฅธ ์์น์ ๊ธฐ๋ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ชจ๋ ๋ณต์กํ ์ฌ๋ก๊ฐ ์๋์ผ๋ก ๋ณ๋ ฌํ๋๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉด์ 1์์ N๊น์ง์ ๋ฃจํ ํํ๋ก ์ฝ๋๋ฅผ ์์ฑํ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์๋ ์๋ํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ H2O์์๋ ์ด๋ Java๋ ์๋๊ณ Scala๋ ์๋๋ฉฐ ์ํ๋ ๊ฒฝ์ฐ "Java ๋ง์ด๋์ค ๋ง์ด๋์ค"๋ผ๊ณ ์๊ฐํ ์ ์์ต๋๋ค. ์ด๋ ๋งค์ฐ ๋ช ํํ ํ๋ก๊ทธ๋๋ฐ ์คํ์ผ์ด๋ฉฐ ๋ฃจํ์ ๋ฐฐ์ด์ ์ฌ์ฉํ์ฌ ๊ฐ๋จํ C ๋๋ Java ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ๊ณผ ์ ์ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋์์ ๋ฉ๋ชจ๋ฆฌ๋ ํ ๋ผ๋ฐ์ดํธ ๋จ์๋ก ์ฒ๋ฆฌ๋ ์ ์์ต๋๋ค. ๋๋ ์์ง๋ H2O๋ฅผ ์ฌ์ฉํ๋ค. ๋๋ ๋๋๋ก ๋ค๋ฅธ ํ๋ก์ ํธ์์ ๊ทธ๊ฒ์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ์ ์ฌ์ ํ โโโโ๊ฐ์ฅ ๋น ๋ฅธ ๊ฒ์ ๋๋ค. ๊ฒฝ์์ฌ๋ณด๋ค ์์ญ ๋ฐฐ ๋น ๋ฆ ๋๋ค. ์ปฌ๋ผํ ๋ฐ์ดํฐ๋ก ๋น ๋ฐ์ดํฐ๋ฅผ ์ํํ๋ ๊ฒฝ์ฐ H2O๋ฅผ ์ด๊ธฐ๊ธฐ๊ฐ ๋งค์ฐ ์ด๋ ต์ต๋๋ค.
๊ธฐ์ ์ ๊ณผ์
์ค๋๋ฅ: ๋น์ ์ ๊ฒฝ๋ ฅ ์ ์ฒด์์ ๊ฐ์ฅ ํฐ ๋์ ์ ๋ฌด์์ด์๋์?
๋ญ๋ ๋ฌ์ง: ๋ฌธ์ ์ ๊ธฐ์ ์ ์ธ ๋ถ๋ถ์ ๋
ผ์ํ๊ณ ์๋์, ์๋๋ฉด ๋น๊ธฐ์ ์ ์ธ ๋ถ๋ถ์ ๋
ผ์ํ๊ณ ์๋์? ๊ฐ์ฅ ํฐ ๊ณผ์ ๋ ๊ธฐ์ ์ ๋ฌธ์ ๊ฐ ์๋๋ผ๊ณ ๋งํ๊ณ ์ถ์ต๋๋ค.
๊ธฐ์ ์ ๊ณผ์ ์ ๊ดํด์๋. ๋๋ ๋จ์ง ๊ทธ๋ค์ ์ด๊ฒผ์ ๋ฟ์
๋๋ค. ๊ฐ์ฅ ํฐ ๊ฒ์ด ๋ฌด์์ธ์ง์กฐ์ฐจ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ๊ฝค ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ณ ์ ์ ์ ์ด๋ ค์์ ๊ฒช๋ ๊ฝค ํฅ๋ฏธ๋ก์ด ๊ฒ๋ค์ด ์์์ต๋๋ค. Sun์ ๊ฐ์ ๋ ๋๋ ๋น ๋ฅธ ์ปดํ์ผ๋ฌ๋ฅผ ๋ง๋ค ๊ฒ์ด๋ผ๊ณ ํ์ ํ๊ณ , ๋ง์ ์ ๋ฐฐ๋ค์ ๊ฒฐ์ฝ ์ฑ๊ณตํ์ง ๋ชปํ ๊ฒ์ด๋ผ๊ณ ๋๋ตํ์ต๋๋ค. ํ์ง๋ง ์ ๋ ์ด ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๋ ์ง์คํฐ ํ ๋น์์ ์ปดํ์ผ๋ฌ๋ฅผ ์์ฑํ๋๋ฐ ๊ฝค ๋นจ๋์ต๋๋ค. ์ต์ C1๋งํผ ๋น ๋ฅด์ง๋ง ํ ๋น์๋ ๊ทธ ๋น์ ํจ์ฌ ๋๋ ธ๊ณ ๋์ด์ผ๋ณด๋ฉด ํฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ฌธ์ ์์ต๋๋ค. ๊ทธ๋ํฝ ๋ ์ง์คํฐ ํ ๋น์๋ฅผ ์์ฑํ๋ ๋ฐ ํ์ํ๊ณ ๊ทธ ์๋์ ์กด์ฌํ๊ณ ๋งค์ฐ ์ค์ํ๋ ์ฝ๋ ํํ์ฑ๊ณผ ์๋ ์ฌ์ด์ ๋๋ ๋ง๋ฅผ ์ดํดํ์ง ๋ชปํ์ต๋๋ค. ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ ์ผ๋ฐ์ ์ผ๋ก ๋น์ x86์ ์บ์ ํฌ๊ธฐ๋ฅผ ์ด๊ณผํ๋ฏ๋ก ์ฒ์์ ๋ ์ง์คํฐ ํ ๋น์๊ฐ ์ด ์งํฐ ์๊ฐ์ 5-10%๋ฅผ ์ฒ๋ฆฌํ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๋ค๋ฉด ์ค์ ๋ก๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. 50ํผ์ผํธ.
์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ปดํ์ผ๋ฌ๋ ๋ ๊นจ๋ํด์ง๊ณ ํจ์จ์ ์ด๊ฒ ๋์์ผ๋ฉฐ ๋ ์ด์ ๋์ฐํ ์ฝ๋ ์์ฑ์ด ์ค๋จ๋์์ผ๋ฉฐ ์ฑ๋ฅ์ ์ ์ฐจ C ์ปดํ์ผ๋ฌ๊ฐ ์์ฑํ๋ ๊ฒ๊ณผ ๋น์ทํด์ก์ต๋๋ค. ๋ฌผ๋ก C์กฐ์ฐจ๋ ์๋๋ฅผ ๋์ด์ง ๋ชปํ๋ ์ฐ๋ ๊ธฐ๋ฅผ ์์ฑํ์ง ์๋ ํ ๋ง์ด์ฃ . . C์ ๊ฐ์ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ๋ ๋ง์ ๊ฒฝ์ฐ์ C์ ๊ฐ์ ์ฑ๋ฅ์ ์ป์ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ๋์๊ฐ์๋ก, ๋ ๋ฒจ C์ ์ ๊ทผ์ ์ผ๋ก ์ผ์นํ๋ ์ฝ๋๋ฅผ ๋ ์์ฃผ ์ป๊ฒ ๋๊ณ , ๋ ์ง์คํฐ ํ ๋น์๋ ์ฝ๋๊ฐ ๋น ๋ฅด๊ฒ ์คํ๋๋์ง ๋๋ฆฌ๊ฒ ์คํ๋๋์ง์ ๊ด๊ณ์์ด ์์ ํ ๊ฒ์ผ๋ก ๋ณด์ด๊ธฐ ์์ํ์ต๋๋ค. ๋๋ ๋ ๋์ ์ ํ์ ๋ง๋ค๊ธฐ ์ํด ํ ๋น์ ์์
์ ๊ณ์ํ์ต๋๋ค. ๊ทธ๋ ์ ์ ๋ ๋๋ ค์ก์ง๋ง, ๋๊ตฌ๋ ๊ฐ๋นํ ์ ์๋ ์ํฉ์์๋ ์ ์ ๋ ์ข์ ์ฑ๊ณผ๋ฅผ ๋๋ค. ๋ ์ง์คํฐ ํ ๋น์๋ก ๋ค์ด๊ฐ์ ๊ฑฐ๊ธฐ์ ํ ๋ฌ ๊ฐ์ ์์
์ ๋ฌป์ด๋๋ฉด ๊ฐ์๊ธฐ ์ ์ฒด ์ฝ๋๊ฐ 5% ๋ ๋น ๋ฅด๊ฒ ์คํ๋๊ธฐ ์์ํ ์ ์์ต๋๋ค. ์ด๋ฐ ์ผ์ด ๊ณ์ํด์ ๋ฐ์ํ๊ณ ๋ ์ง์คํฐ ํ ๋น์๋ ์ผ์ข
์ ์์ ์ํ์ด ๋์์ต๋๋ค. ๋ชจ๋๊ฐ ๊ทธ๊ฒ์ ์ข์ํ๊ฑฐ๋ ์ซ์ดํ๊ณ , ์์นด๋ฐ๋ฏธ ์ฌ๋๋ค์ "๋ชจ๋ ๊ฒ์ด ์ ์ด๋ฐ ์์ผ๋ก ์ํ๋๋์ง"๋ผ๋ ์ฃผ์ ์ ๋ํด ์ง๋ฌธํ์ต๋๋ค.
๋ฌธ์ ๋ ์ธ๋ผ์ธ ์ฒ๋ฆฌ๋๋ ๋ฉ์๋๋ฅผ ์ถ๊ฐํ๊ณ ์ธ๋ผ์ธ ์์ญ์ ๋๋ฆฌ๊ณ ๋๋ฆฌ๋ฉด ์ฌ์ฉ๋๋ ๊ฐ ์งํฉ์ด ์ฆ์ ๋ ์ง์คํฐ ์๋ฅผ ๋ฐ์ด๋์ด ์๋ผ์ผ ํ๋ค๋ ์ ์ด๋ค. ์๊ณ ์์ค์ ์ผ๋ฐ์ ์ผ๋ก ํ ๋น์๊ฐ ํฌ๊ธฐํ๊ณ ์ ์ถ์ ๋ํ ์ข์ ํ๋ณด ํ๋๊ฐ ๋ค๋ฅธ ๊ฐ์น๊ฐ ์์ ๋ ๋ฐ์ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ผ์ ๋ฌผ๊ฑด์ ํ๋งคํ๊ฒ ๋ฉ๋๋ค. ์ฌ๊ธฐ์ ์ธ๋ผ์ธ ์ฒ๋ฆฌ์ ๊ฐ์น๋ ์ค๋ฒํค๋์ ์ผ๋ถ, ํธ์ถ ๋ฐ ์ ์ฅ์ ๋ํ ์ค๋ฒํค๋๊ฐ ์์ค๋๊ณ , ๋ด๋ถ ๊ฐ์ ๋ณผ ์ ์์ผ๋ฉฐ ์ด๋ฅผ ๋์ฑ ์ต์ ํํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ธ๋ผ์ธ ์ฒ๋ฆฌ์ ๋น์ฉ์ ์๋ง์ ๋ผ์ด๋ธ ๊ฐ์ด ํ์ฑ๋๋ค๋ ์ ์ด๋ฉฐ, ๋ ์ง์คํฐ ํ ๋น์๊ฐ ํ์ ์ด์์ผ๋ก ์์ง๋๋ฉด ์ฆ์ ์์ค์ ์ ๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋๋ถ๋ถ์ ํ ๋น์์๊ฒ๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ธ๋ผ์ธ์ด ํน์ ์ ์ ๋์ผ๋ฉด ์ธ์์ ๋ชจ๋ ๊ฒ์ด ์ถ์๋๊ธฐ ์์ํ๊ณ ์์ฐ์ฑ์ด ๋ณ๊ธฐ์์ ์์์ ธ ๋์ฌ ์ ์์ต๋๋ค. ์ปดํ์ผ๋ฌ๋ฅผ ๊ตฌํํ๋ ์ฌ๋๋ค์ ๋ช ๊ฐ์ง ๊ฒฝํ์ ๋ฐฉ๋ฒ์ ์ถ๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํ ๋น์ผ๋ก ์ธํด ๋ชจ๋ ๊ฒ์ด ๋ง๊ฐ์ง ์ ์์ผ๋ฏ๋ก ์ธ๋ผ์ธ์ ์ค์งํ๊ณ ์ถฉ๋ถํ ํฐ ํฌ๊ธฐ๋ก ์์ํ๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ด ์ฑ๋ฅ ๊ทธ๋ํ์ ๊ผฌ์์ด ํ์ฑ๋๋ ๋ฐฉ์์ ๋๋ค. ์ธ๋ผ์ธ, ์ธ๋ผ์ธ, ์ฑ๋ฅ์ด ์ฒ์ฒํ ์ฆ๊ฐํ ๋ค์ ํญ๋ฐํฉ๋๋ค! โ ์ค์ ๋๋ฌด ๋ง์ด ์ณ์ ์ค์ํํธ ์ญ์ฒ๋ผ ๋จ์ด์ง๋๋ค. ์ด๊ฒ์ด Java๊ฐ ์ถํํ๊ธฐ ์ ์ ๋ชจ๋ ๊ฒ์ด ์๋ํ๋ ๋ฐฉ์์ด์์ต๋๋ค. Java์๋ ํจ์ฌ ๋ ๋ง์ ์ธ๋ผ์ธ์ด ํ์ํ๋ฏ๋ก ํ ๋น์๋ฅผ ํจ์ฌ ๋ ๊ณต๊ฒฉ์ ์ผ๋ก ๋ง๋ค์ด ์ถฉ๋์ด ๋ฐ์ํ์ง ์๊ณ ์ํ์ ์ ์งํ๋๋ก ํด์ผ ํ์ต๋๋ค. ๋๋ฌด ๋ง์ด ์ธ๋ผ์ธํ๋ฉด ์ ์ถ๋๊ธฐ ์์ํ์ง๋ง "๋ ์ด์ ์ ์ถ์ด ์๋" ์๊ฐ์ ์ฌ์ ํ โโ์ต๋๋ค. ์ด๊ฒ์ ํฅ๋ฏธ๋ก์ด ๊ด์ฐฐ์ด๋ฉฐ ๊ฐ์๊ธฐ ๋์๊ฒ ๋ํ๋ฌ์ต๋๋ค. ๋ช ํํ์ง๋ ์์ง๋ง ์ข์ ์ฑ๊ณผ๋ฅผ ๊ฑฐ๋์์ต๋๋ค. ์ ๋ ๊ณต๊ฒฉ์ ์ธ ์ธ๋ผ์ธ์ ์ฑํํ๊ณ ์ด๋ฅผ ํตํด Java์ C ์ฑ๋ฅ์ด ๋๋ํ ์๋ํ๋ ๊ณณ์ผ๋ก ์ด๋ํ์ต๋๋ค. ๊ทธ๋ค์ ์ ๋ง ๊ฐ๊น์ต๋๋ค. C ์ฝ๋๋ณด๋ค ํจ์ฌ ๋น ๋ฅธ Java ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ง๋ง ํ๊ท ์ ์ผ๋ก ํฐ ๊ทธ๋ฆผ์์๋ ๊ฑฐ์ ๋น์ทํฉ๋๋ค. ๋ด ์๊ฐ์ ์ด ์ฅ์ ์ ์ผ๋ถ๋ ๋ ์ง์คํฐ ํ ๋น์์ธ๋ฐ, ์ด๋ฅผ ํตํด ๊ฐ๋ฅํ ํ ๋ฉ์ฒญํ๊ฒ ์ธ๋ผ์ธ์ ์ํํ ์ ์์ต๋๋ค. ๋๋ ๋ด๊ฐ ๋ณด๋ ๋ชจ๋ ๊ฒ์ ์ธ๋ผ์ธํฉ๋๋ค. ์ฌ๊ธฐ์ ์ง๋ฌธ์ ํ ๋น์๊ฐ ์ ์๋ํ๋์ง, ๊ฒฐ๊ณผ๊ฐ ์ง๋ฅ์ ์ผ๋ก ์๋ํ๋ ์ฝ๋์ธ์ง ์ฌ๋ถ์ ๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ ์ดํดํ๊ณ ์คํํ๋ ๊ฒ์ ํฐ ๋์ ์ด์์ต๋๋ค.
๋ ์ง์คํฐ ํ ๋น๊ณผ ๋ฉํฐ ์ฝ์ด์ ๋ํด ์กฐ๊ธ
๋ธ๋ผ๋๋ฏธ๋ฅด: ๋ ์ง์คํฐ ํ ๋น๊ณผ ๊ฐ์ ๋ฌธ์ ๋ ์ผ์ข ์ ์์ํ๊ณ ๋์๋ ์ฃผ์ ์ฒ๋ผ ๋ณด์ ๋๋ค. ์ ๋งํด ๋ณด์์ง๋ง ์ค์ ๋ก๋ ์คํจํ ์์ด๋์ด๊ฐ ์์๋์ง ๊ถ๊ธํฉ๋๋ค.
๋ญ๋ ๋ฌ์ง: ํ๋ฆผ์์ด! ๋ ์ง์คํฐ ํ ๋น์ NP-์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ๊ฒฝํ์ ๋ฐฉ๋ฒ์ ์ฐพ์ผ๋ ค๋ ์์ญ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฒฐ์ฝ ์๋ฒฝํ ์๋ฃจ์ ์ ์ป์ ์๋ ์์ต๋๋ค. ๊ทธ๋ ์ฃ ? ์ด๊ฒ์ ๋จ์ํ ๋ถ๊ฐ๋ฅํฉ๋๋ค. ๋ณด์ธ์, Ahead of Time ์ปดํ์ผ๋ ์ ๋๋ก ์๋ํ์ง ์์ต๋๋ค. ์ฌ๊ธฐ์ ๋ํ๋ ๋ช ๊ฐ์ง ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ์ ๊ดํ ๊ฒ์ ๋๋ค. ์ผ๋ฐ์ ์ธ ์ฑ๋ฅ์ ๋ํด, ์ข์ ์ผ๋ฐ์ ์ธ ์ฑ๋ฅ์ด๋ผ๊ณ ์๊ฐ๋๋ ๊ฒ์ ์ธก์ ํ ์ ์์ต๋๋ค. ๊ฒฐ๊ตญ ์ด๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๊ณ ์๋ ๊ฒ์ ๋๋ค! ๋ ์ง์คํฐ ํ ๋น์ ์ฑ๋ฅ์ ๊ดํ ๋ชจ๋ ์ฃผ์ ์ ๋๋ค. ์ฒซ ๋ฒ์งธ ํ๋กํ ํ์ ์ด ์์ฑ๋๋ฉด ์๋ํ๊ณ ํ์ํ ๊ฒ์ ์น ํ ํ ์ฑ๋ฅ ์์ ์ด ์์๋ฉ๋๋ค. ์ ์ธก์ ํ๋ ๋ฒ์ ๋ฐฐ์์ผํฉ๋๋ค. ์ ์ค์ ํจ? ๋ช ํํ ๋ฐ์ดํฐ๊ฐ ์๋ค๋ฉด ๋ค์ํ ์์ญ์ ์ดํด๋ณด๊ณ ํ์ธํ ์ ์์ต๋๋ค. ์, ์ฌ๊ธฐ์๋ ๋์์ด ๋์์ง๋ง ๋ชจ๋ ๊ฒ์ด ๊นจ์ก์ต๋๋ค! ์ข์ ์์ด๋์ด๊ฐ ๋ ์ค๋ฅด๊ณ ์๋ก์ด ๊ฒฝํ์ ๋ฐฉ๋ฒ์ ์ถ๊ฐํ๋ฉด ๊ฐ์๊ธฐ ๋ชจ๋ ๊ฒ์ด ํ๊ท ์ ์ผ๋ก ์กฐ๊ธ ๋ ์ ์๋ํ๊ธฐ ์์ํฉ๋๋ค. ์๋๋ฉด ์์๋์ง ์์ต๋๋ค. ์ด์ ํ ๋น์์ ๊ฐ๋ฐ์ ์ฐจ๋ณํํ๋ XNUMX% ์ฑ๋ฅ์ ์ํด ์ธ์ฐ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ด ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋งค๋ฒ ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ ๋๋ค. ๋น์ ์ด ์น๋ฆฌํ๋ ๊ณณ๊ณผ ํจ๋ฐฐํ๋ ๊ณณ. ์ข์ ์ฑ๊ณผ ๋ถ์ ๋๊ตฌ๊ฐ ์๋ค๋ฉด ์์ด๋ฒ๋ฆฐ ์์ด๋์ด๋ฅผ ์ฐพ๊ณ ๊ทธ๊ฒ์ด ์คํจํ ์ด์ ๋ฅผ ์ดํดํ ์ ์์ต๋๋ค. ์ด์ฉ๋ฉด ๋ชจ๋ ๊ฒ์ ๊ทธ๋๋ก ๋๋ ๊ฒ์ด ๊ฐ์น๊ฐ ์์ ์๋ ์๊ณ , ๋ฏธ์ธ ์กฐ์ ์ ์ข ๋ ์ง์งํ๊ฒ ์ ๊ทผํ๊ฑฐ๋, ๋๊ฐ์ ๋ค๋ฅธ ๊ฒ์ ๊ณ ์น๋ ๊ฒ์ด ๊ฐ์น๊ฐ ์์ ์๋ ์์ต๋๋ค. ๊ทธ๊ฒ์ ๋ง์ ๊ฒ๋ค์ ๋๋ค! ์ ๋ ์ด ๋ฉ์ง ๊ฟํ์ ๋ง๋ค์์ง๋ง ์ด๊ฒ๋ ํ์ํฉ๋๋ค. ์ด ๊ฒ, ์ด๊ฒ, ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ํ์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ๋ค์ ์ด์ฒด์ ์ธ ์กฐํฉ์ ์ฝ๊ฐ์ ๊ฐ์ ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ธํจ์ด๋ ์คํจํ ์๋ ์์ต๋๋ค. ์ด๊ฒ์ด NP-์์ ๋ฌธ์ ์ ๋ํ ์ํ ์์ ์ ํน์ฑ์ ๋๋ค.
๋ธ๋ผ๋๋ฏธ๋ฅด: ํ ๋น์์ ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฌธ์ ๋ ์ด๋ฏธ ํด๊ฒฐ๋ ๋ฌธ์ ๋ผ๋ ๋๋์ ๋ฐ์ต๋๋ค. ๊ธ์์, ๋น์ ์ด ๋งํ๋ ๋๋ก ํ๋จํ๋ฉด ๊ทธ๊ฒ์ ๋น์ ์ ์ํด ๊ฒฐ์ ๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด ๊ทธ๋ด๋งํ ๊ฐ์น๊ฐ ์์ต๋๊น?
๋ญ๋ ๋ฌ์ง: ๊ทธ ์์ฒด๋ก๋ ํด๊ฒฐ๋์ง ์์ต๋๋ค. ๊ทธ๊ฒ์ 'ํด๊ฒฐ'๋ก ๋ฐ๊ฟ์ผ ํ๋ ์ฌ๋์ ๋ฐ๋ก ๋น์ ์ ๋๋ค. ์ด๋ ค์ด ๋ฌธ์ ๊ฐ ์๊ณ ํด๊ฒฐํด์ผ ํฉ๋๋ค. ์ด ์์ ์ด ์๋ฃ๋๋ฉด ์์ฐ์ฑ์ ๋์ด๊ธฐ ์ํด ์์ ํ ์๊ฐ์ ๋๋ค. ์ด์ ๋ฐ๋ผ ์ด ์์ ์ ์ ๊ทผํด์ผ ํฉ๋๋ค. ๋ฒค์น๋งํฌ๋ฅผ ์ํํ๊ณ , ์งํ๋ฅผ ์์งํ๊ณ , ์ด์ ๋ฒ์ ์ผ๋ก ๋กค๋ฐฑํ ๋ ์ด์ ํดํน์ด ๋ค์ ์๋ํ๊ธฐ ์์ํ๊ฑฐ๋ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ ์ํฉ์ ์ค๋ช ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ญ๊ฐ๋ฅผ ์ด๋ฃฐ ๋๊น์ง ํฌ๊ธฐํ์ง ๋ง์ธ์. ์ด๋ฏธ ๋งํ๋ฏ์ด, ํจ๊ณผ๊ฐ ์๋ ๋ฉ์ง ์์ด๋์ด๊ฐ ์์ง๋ง ์์ด๋์ด ๋ ์ง์คํฐ ํ ๋น ๋ถ์ผ์์๋ ๊ฑฐ์ ๋์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ณผํ ์ถํ๋ฌผ์ ์ฝ์ ์ ์์ต๋๋ค. ์ด์ ์ด ์์ญ์ ์ ์์ ๋๋ณด๋ค ํจ์ฌ ๋ ๋๋ฆฌ๊ฒ ์์ง์ด๊ธฐ ์์ํ๊ณ ๋ ๋ช ํํด์ก์ต๋๋ค. ํ์ง๋ง ์ด ๋ถ์ผ์๋ ์ ์ ์์ด ๋ง์ ์ฌ๋๋ค์ด ์ผํ๊ณ ์์ผ๋ฉฐ ๊ทธ๋ค์ ๋ชจ๋ ์์ด๋์ด๋ ์๋ํด ๋ณผ ๊ฐ์น๊ฐ ์์ผ๋ฉฐ ๋ชจ๋๊ฐ ๊ธฐ๋ค๋ฆฌ๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ํด ๋ณด์ง ์์ผ๋ฉด ๊ทธ๊ฒ์ด ์ผ๋ง๋ ์ข์์ง ์ ์ ์์ต๋๋ค. ํ ๋น์๋ ๋ง์ ์ผ์ ์ํํ๊ณ ์ผ๋ถ ์์ด๋์ด๋ ํน์ ํ ๋น์์์๋ ์๋ํ์ง ์์ง๋ง ๋ค๋ฅธ ํ ๋น์์์๋ ์ฝ๊ฒ ์๋ํ๊ธฐ ๋๋ฌธ์ ํ ๋น์์ ๋ค๋ฅธ ๋ชจ๋ ๊ฒ๊ณผ ์ผ๋ง๋ ์ ํตํฉ๋ฉ๋๊น? ํ ๋น์๊ฐ ์น๋ฆฌํ๋ ์ฃผ์ ๋ฐฉ๋ฒ์ ๋๋ฆฐ ํญ๋ชฉ์ ๊ธฐ๋ณธ ๊ฒฝ๋ก ์ธ๋ถ๋ก ๋์ด์ ๋๋ฆฐ ๊ฒฝ๋ก์ ๊ฒฝ๊ณ๋ฅผ ๋ฐ๋ผ ๊ฐ์ ๋ก ๋ถํ ํ๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ GC๋ฅผ ์คํํ๊ณ ๋๋ฆฐ ๊ฒฝ๋ก๋ฅผ ํํ๊ณ , ์ต์ ํ๋ฅผ ์ทจ์ํ๊ณ , ์์ธ๋ฅผ ๋ฐ์์ํค๋ ๋ฑ์ ๋ชจ๋ ์์ ์ ์ํํ๋ ค๋ ๊ฒฝ์ฐ ์ด๋ฌํ ์์ ์ด ์๋์ ์ผ๋ก ๋๋ฌผ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ฐ ๊ฒฝ์ฐ๋ ์ ๋ง ๋๋ฌผ๋ค๊ณ ํ์ธํด ๋ดค์ต๋๋ค. ์ถ๊ฐ ์์ ์ ์ํํ๋ฉด ์ด๋ฌํ ๋๋ฆฐ ๊ฒฝ๋ก์ ๋ํ ๋ง์ ์ ํ์ด ์ ๊ฑฐ๋์ง๋ง ์๋๊ฐ ๋๋ฆฌ๊ณ ๊ฑฐ์ ์ด๋ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ค์ ๋ก ์ค์ํ์ง ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ ํฌ์ธํฐ๋ ์ ๋ ๋ฐ์ํ์ง ์์ต๋๋ค. ๊ทธ๋ ์ฃ ? ๋ค์ํ ์์ ์ ์ํํ๋ ค๋ฉด ์ฌ๋ฌ ๊ฒฝ๋ก๊ฐ ํ์ํ์ง๋ง ์ฃผ์ ๊ฒฝ๋ก๋ฅผ ๋ฐฉํดํด์๋ ์ ๋ฉ๋๋ค.
๋ธ๋ผ๋๋ฏธ๋ฅด: ์์ฒ ๊ฐ์ ์ฝ์ด๊ฐ ๋์์ ์กด์ฌํ๋ ๋ฉํฐ ์ฝ์ด์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ์๋์? ์ด๊ฒ์ด ์ ์ฉํ ๊ฒ์ ๋๊น?
๋ญ๋ ๋ฌ์ง: GPU์ ์ฑ๊ณต์ ๊ทธ๊ฒ์ด ๋งค์ฐ ์ ์ฉํ๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค!
๋ธ๋ผ๋๋ฏธ๋ฅด: ์๋นํ ์ ๋ฌธ์ ์ ๋๋ค. ๋ฒ์ฉ ํ๋ก์ธ์๋ ์ด๋ป์ต๋๊น?
๋ญ๋ ๋ฌ์ง: ๊ทธ๊ฒ ๋ฐ๋ก Azul์ ๋น์ฆ๋์ค ๋ชจ๋ธ์ด์์ฃ . ์ฌ๋๋ค์ด ์์ธก ๊ฐ๋ฅํ ์ฑ๋ฅ์ ์ ๋ง ์ข์ํ๋ ์๋์ ๊ทธ ๋๋ต์ด ๋์์์ต๋๋ค. ๊ทธ ๋น์์๋ ๋ณ๋ ฌ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ด๋ ค์ ์ต๋๋ค. H2O ์ฝ๋ฉ ๋ชจ๋ธ์ ํ์ฅ์ฑ์ด ๋ฐ์ด๋์ง๋ง ๋ฒ์ฉ ๋ชจ๋ธ์ ์๋๋๋ค. ์๋ง๋ GPU๋ฅผ ์ฌ์ฉํ ๋๋ณด๋ค ์กฐ๊ธ ๋ ์ผ๋ฐ์ ์ผ ๊ฒ์ ๋๋ค. ๊ทธ๋ฐ ๊ฒ์ ๊ฐ๋ฐํ๋ ๊ฒ์ ๋ณต์ก์ฑ์ด๋ ๊ทธ๊ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ ๋ณต์ก์ฑ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์์ต๋๊น? ์๋ฅผ ๋ค์ด Azul์ ๋์๊ฒ ๋ค์ ๋ช ํํ์ง ์์ ํฅ๋ฏธ๋ก์ด ๊ตํ์ ๊ฐ๋ฅด์ณ์ฃผ์์ต๋๋ค. ์์ ์บ์๋ ์ ์์ ๋๋ค.
์ธ์์ ๊ฐ์ฅ ํฐ ๋์
๋ธ๋ผ๋๋ฏธ๋ฅด: ๊ธฐ์ ์ ์ด์ง ์์ ๊ณผ์ ๋ ์ด๋ป์ต๋๊น?
๋ญ๋ ๋ฌ์ง: ๊ฐ์ฅ ํฐ ๋์ ์... ์ฌ๋๋ค์๊ฒ ์น์ ํ๊ณ ์น์ ํ๊ฒ ๋ํ๋ ๊ฒ์ด ์๋์์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ๋๋ ๊ทน๋์ ๊ฐ๋ฑ ์ํฉ์ ๋์์์ด ์ง๋ฉดํ์ต๋๋ค. ์ผ์ด ์๋ชป๋๊ณ ์๋ค๋ ๊ฒ์ ์์์ง๋ง ๊ทธ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํด์ผ ํ ์ง ๋ชจ๋ฅด๊ณ ์ฒ๋ฆฌํ ์ ์์๋ ์ฌ๋๋ค์ด์์ต๋๋ค. ์์ญ ๋ ๋์ ์ง์๋ ๋ง์ ์ฅ๊ธฐ์ ์ธ ๋ฌธ์ ๊ฐ ์ด๋ฐ ์์ผ๋ก ๋ฐ์ํ์ต๋๋ค. Java์ C1 ๋ฐ C2 ์ปดํ์ผ๋ฌ๊ฐ ์๋ค๋ ์ฌ์ค์ ์ด์ ๋ฐ๋ฅธ ์ง์ ์ ์ธ ๊ฒฐ๊ณผ์ ๋๋ค. ์๋ฐ์์ XNUMX๋ ์ฐ์ ๋ค๋จ๊ณ ์ปดํ์ผ์ด ์์๋ค๋ ๊ฒ๋ ์ง์ ์ ์ธ ๊ฒฐ๊ณผ๋ค. ๊ทธ๋ฌํ ์์คํ ์ด ํ์ํ๋ค๋ ๊ฒ์ ๋ถ๋ช ํ์ง๋ง ์ ์กด์ฌํ์ง ์์๋์ง๋ ๋ถ๋ช ํ์ง ์์ต๋๋ค. ์์ง๋์ด ํ ๋ช ์ด๋ ์์ง๋์ด ๊ทธ๋ฃน๊ณผ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค. ์๋ ์์ ์ Sun์์ ์ผ์ ์์ํ์ ๋ ๋๋... ์์์ด, ๊ทธ๋๋ฟ๋ง ์๋๋ผ ๋๋ ์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ ๋ํด ํญ์ ๋ด ์๊ฒฌ์ ๊ฐ์ง๊ณ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ๋น์ ์ด ์ด ์ง์ค์ ๋ฐ์๋ค์ด๊ณ ์ ๋ฉด์ผ๋ก ๋งํ ์ ์๋ค๋ ๊ฒ์ด ์ฌ์ค์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ํนํ ๋๋ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋๋๊ฒ๋ ์ณ์ ๊ธฐ ๋๋ฌธ์ ๋์ฑ ๊ทธ๋ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ฝ ๋น์ ์ด ์ด ์ ๊ทผ ๋ฐฉ์์ ์ข์ํ์ง ์๋๋ค๋ฉด... ํนํ ๋น์ ์ด ๋ถ๋ช ํ ํ๋ ธ๊ณ ๋ง๋ ์๋๋ ์ผ์ ํ๊ณ ์๋ค๋ฉด... ์ผ๋ฐ์ ์ผ๋ก ์ด๋ฐ ํํ์ ์์ฌ์ํต์ ์ฉ์ธํ ์ ์๋ ์ฌ๋์ ๊ฑฐ์ ์์ต๋๋ค. ๋์ฒ๋ผ ์ผ๋ถ๋ ๊ทธ๋ด ์ ์์ง๋ง. ๋๋ ๋ด ์ธ์ ์ ์ฒด๋ฅผ ๋ฅ๋ ฅ์ฃผ์ ์์น ์์ ์ธ์์์ต๋๋ค. ๋น์ ์ด ๋์๊ฒ ์๋ชป๋ ๊ฒ์ ๋ณด์ฌ ์ฃผ๋ฉด ๋๋ ์ฆ์ ๋์ ์์ ๋งํ ๊ฒ์ ๋๋ค : ๋น์ ์ ๋ง๋ ์๋๋ ๋ง์ํ์ต๋๋ค. ๋์์ ์ฌ๊ณผ๋๋ฆฌ๋ฉฐ, ์ฅ์ ์ด ์๋ค๋ฉด ์ง์ ํ๊ณ ๋ค๋ฅธ ์ฌ๋ฐ๋ฅธ ์กฐ์น๋ฅผ ์ทจํ๊ฒ ์ต๋๋ค. ๋ฐ๋ฉด์, ์ ์ฒด ์๊ฐ์ ๋๋๊ฒ๋ ํฐ ๋น์จ์ ๋ํด์๋ ๋ด ๋ง์ด ์ณ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๋๋ค๊ณผ์ ๊ด๊ณ์์๋ ์ ์๋ํ์ง ์์ต๋๋ค. ์น์ ํ๊ฒ ๋ํ ์๊ฐ์ ์์ง๋ง ์ง์ค์ ์ผ๋ก ์ง๋ฌธ๋๋ฆฝ๋๋ค. "์ด๊ฑด ์ ๋ ์ ๋ ๊ฒ ๊ฐ์์. ํ๋, ๋, ์ ์ด๋๊น์." ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ "์ค!"๋ผ๊ณ ๋งํ์ต๋๋ค. ๋ฌด์ํ๋ ๊ฒ์ด ๋ ๋์ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ ์์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์๋ด์์ ์ดํผ์ผ๋ก ์ด์ด์ก๊ณ ๊ทธ ํ XNUMX๋ ๋์ ์ฐ์ธ์ฆ์ ๊ฒช๊ฒ ๋ ๊ฒฐ๊ณผ๊ฐ ์์ต๋๋ค.
๋์ ์ ๋น์ ์ด ํ ์ ์๋ ๊ฒ๊ณผ ํ ์ ์๋ ๊ฒ, ์ค์ํ ๊ฒ๊ณผ ๊ทธ๋ ์ง ์์ ๊ฒ์ ๋ํ ์ฌ๋๋ค์ ์ธ์๊ณผ์ ํฌ์์ ๋๋ค. ์ฝ๋ฉ ์คํ์ผ์ ๋ํ ์ด๋ ค์์ด ๋ง์์ต๋๋ค. ๋๋ ์์ง๋ ์ฝ๋๋ฅผ ๋ง์ด ์์ฑํ๋๋ฐ, ๊ทธ ๋น์์๋ ํ๋์ ์ง์คํ๊ธฐ๋ณด๋ค ๋ณ๋ ฌ ์์ ์ ๋๋ฌด ๋ง์ด ํ๊ณ ์ ๋๋ก ์ํํ์ง ๋ชปํด์ ์๋๋ฅผ ๋ฆ์ถฐ์ผ ํ๊ธฐ๋ ํ์ต๋๋ค. ๋๋์๋ณด๋ฉด Java JIT ๋ช ๋ น์ธ C2 ๋ช ๋ น์ ๋ํ ์ฝ๋์ ์ ๋ฐ์ ์์ฑํ์ต๋๋ค. ๊ทธ ๋ค์์ผ๋ก ๋น ๋ฅธ ์ฝ๋๋ ์ ๋ฐ์ ๋๋ฆฌ๊ฒ, ๊ทธ ๋ค์ ์ ๋ฐ์ ๋๋ฆฌ๊ฒ ์์ฑํ๋๋ฐ, ์ด๋ ๊ธฐํ๊ธ์์ ์ผ๋ก ๊ฐ์ํ์ต๋๋ค. ์ด ์ค์ ์ผ๊ณฑ ๋ฒ์งธ ์ฌ๋์ ๋งค์ฐ ๋๋ ธ์ต๋๋ค. ํญ์ ๊ทธ๋ฐ ์ผ์ด ์ผ์ด๋ฌ์ต๋๋ค! ์ฝ๋๋ฅผ ๋ง์ด ๋ง์ก์ต๋๋ค. ๋๋ ๋๊ฐ ๋ฌด์์ ์ผ๋์ง ์ดํด๋ณด์๋๋ฐ, ์์ธ ์์ด ๊ทธ๋ค์ ์ฝ๋๋ฅผ ์ณ๋ค๋ณด๊ณ , ๊ฐ๊ฐ์ ์ฝ๋๋ฅผ ๊ฒํ ํ์ผ๋ฉฐ, ์ฌ์ ํ ๊ทธ๋ค ์ค ๋๊ตฌ๋ณด๋ค ๋ ๋ง์ ๊ฒ์ ์ง์ ์์ฑํ์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ๋๋ค์๊ฒ๋ ์ ์๋ํ์ง ์์ต๋๋ค. ์ด๋ค ์ฌ๋๋ค์ ์ด๊ฒ์ ์ข์ํ์ง ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ๊ฐ๋นํ์ง ๋ชปํ๋ฉด ์จ๊ฐ ๋ถ๋ง์ด ํฐ์ง๊ธฐ ์์ํ๋ค. ์๋ฅผ ๋ค์ด, ์ฝ๋๋ฅผ ๋๋ฌด ๋ง์ด ์์ฑํ๋ฉด ํ์ด ์ํํด์ง๋ค๋ ์ด์ ๋ก ์ฝ๋ฉ์ ์ค๋จํ๋ผ๋ ๋ง์ ๋ค์์ต๋๋ค. ์ด ๋ชจ๋ ๊ฒ์ด ๋์๊ฒ๋ ๋๋ด์ฒ๋ผ ๋ค๋ ธ์ต๋๋ค. ์น๊ตฌ, ๋๋จธ์ง ํ์์ด ์ฌ๋ผ์ง๊ณ ๊ณ์ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ์ ๋ฐ๋ง ํ์ ์๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ฉด์ ๋ด๊ฐ ๊ณ์ํด์ ์ฝ๋๋ฅผ ์์ฑํ๋๋ฐ ํ์ ์ ๋ฐ์ ์๊ฒ ๋๋ค๋ฉด ๊ด๋ฆฌ๊ฐ ๋งค์ฐ ๋์ ๊ฒ์ฒ๋ผ ๋ค๋ฆฝ๋๋ค. ๊ทธ๊ฒ์ ๋ํด ๊น์ด ์๊ฐํด ๋ณธ ์ ๋ ์๊ณ , ์ด์ผ๊ธฐํ ์ ๋ ์์ง๋ง, ๊ทธ ์๊ฐ์ ์ฌ์ ํ โโ๋ด ๋จธ๋ฆฟ์ ์ด๋๊ฐ์ ๋จ์ ์์์ต๋๋ค. ๋ด ๋ง์ ํ๊ตฌ์์๋ โ๋๋ดํ๋ ๊ฑฐ์ผ?โ๋ผ๋ ์๊ฐ์ด ๋งด๋์์ต๋๋ค. ๊ทธ๋์ ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ ๋์ ์ฌ๋๋ค๊ณผ์ ๊ด๊ณ์์ต๋๋ค. ์ด์ ๋๋ ๋ด ์์ ์ ํจ์ฌ ๋ ์ ์ดํดํ๊ณ ์ค๋ซ๋์ ํ๋ก๊ทธ๋๋จธ์ ํ ๋ฆฌ๋์์ผ๋ฉฐ ์ด์ ๋ ์ฌ๋๋ค์๊ฒ ์ง์ ๋งํฉ๋๋ค. ์๋ค์ํผ ๋๋ ๋์ด๊ณ ๋น์ ์ ๋๋ฅผ ์๋ํด์ผ ํ ๊ฒ์ ๋๋ค. ๋ด๊ฐ ์ ์์ด๋ ๊ด์ฐฎ์ต๋๊น? ์ฌ๊ธฐ? ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ด ๊ทธ๊ฒ์ ๋ค๋ฃจ๊ธฐ ์์ํ์ ๋ ๋ชจ๋ ๊ฒ์ด ์ ์๋ํ์ต๋๋ค. ์ฌ์ค ๋๋ ๋์์ง๋ ์ฐฉํ์ง๋ ์๊ณ , ๋์ ์๋๋ ์ด๊ธฐ์ ์ธ ์ด๋ง๋ ์๊ณ , ๊ทธ๊ฒ์ ๋จ์ง ๋์ ๋ณธ์ง์ด๊ณ , ์ด๋ป๊ฒ๋ ์ด์๊ฐ์ผ ํฉ๋๋ค.
์ค๋๋ฅ: ์ต๊ทผ์ ๋ชจ๋๊ฐ ๋ด์ฑ์ ์ธ ์ฌ๋์ ์๊ธฐ ์ธ์๊ณผ ์ผ๋ฐ์ ์ธ ์ํํธ ์คํฌ์ ๋ํด ์ด์ผ๊ธฐํ๊ธฐ ์์ํ์ต๋๋ค. ์ด๊ฒ์ ๋ํด ๋ฌด์์ ๋งํ ์ ์์ต๋๊น?
๋ญ๋ ๋ฌ์ง: ๋ค, ๊ทธ๊ฒ ์ ๊ฐ ์๋ด์์ ์ดํผ์ ํตํด ๋ฐฐ์ด ํต์ฐฐ์ด์ ๊ตํ์ด์์ต๋๋ค. ์ดํผ์ ํตํด ๋ฐฐ์ด ๊ฒ์ ๋ ์์ ์ ์ดํดํ๋ ๊ฒ์ด์๋ค. ์ด๊ฒ์ด ์ ๊ฐ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ดํดํ๊ธฐ ์์ํ ๋ฐฉ๋ฒ์
๋๋ค. ์ด ์ํธ ์์ฉ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํดํ์ญ์์ค. ์ด๊ฒ์ด ์๋ฐ๋ผ ๋ฐ๊ฒฌ์ผ๋ก ์ด์ด์ก์ต๋๋ค. ๋ด๊ฐ ๋๊ตฌ์ธ์ง, ๋ด๊ฐ ๋ฌด์์ ๋ํํ๋์ง์ ๋ํ ์ธ์์ด ์์์ต๋๋ค. ๋ด๊ฐ ๋ฌด์์ ํ๊ณ ์๋์ง: ๋๋ ์ผ์ ๋ชฐ๋ํ๊ณ ์๊ฑฐ๋ ๊ฐ๋ฑ์ ํผํ๊ณ ์๊ฑฐ๋ ๋ค๋ฅธ ์ผ์ ํ๊ณ ์์ต๋๋ค. ์ด๋ฌํ ์์ค์ ์๊ธฐ ์ธ์์ ๋ ์์ ์ ํต์ ํ๋ ๋ฐ ์ค์ ๋ก ๋์์ด ๋ฉ๋๋ค. ๊ทธ ํ์๋ ๋ชจ๋ ๊ฒ์ด ํจ์ฌ ์ฌ์์ง๋๋ค. ๋ ์์ ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋จธ์๊ฒ์๋ ๋ด๊ฐ ๋ฐ๊ฒฌํ ํ ๊ฐ์ง๋ ๊ฐ์ ์ ์คํธ๋ ์ค ์ํ์ ์์ ๋ ์๊ฐ์ ๋ง๋ก ํํํ ์ ์๋ค๋ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด, ๋น์ ์ด ๊ฑฐ๊ธฐ ์์์ ๋ชฐ์
ํ ์ํ๋ก ์ฝ๋ฉ์ ํ๊ณ ์๋๋ฐ, ๊ทธ๋ค์ด ๋น์ ์๊ฒ ๋ฌ๋ ค์ ๋ญ๊ฐ๊ฐ ๋ง๊ฐ์ก๋ค๊ณ ํ์คํ
๋ฆฌํ๊ฒ ๋น๋ช
์ ์ง๋ฅด๊ธฐ ์์ํ๋ฉด ์ด์ ๋น์ ์๊ฒ ๊ทน๋จ์ ์ธ ์กฐ์น๊ฐ ์ทจํด์ง ๊ฒ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ์ ์ ์ผ๋ก ์คํธ๋ ์ค๋ฅผ ๋ฐ์ ์ํ๋ผ ํ๋ง๋๋ ํ ์ ์์ต๋๋ค. ์ต๋ํ ์ง์์ ํตํด ์ด ์๊ฐ์ ์ค๋นํ๊ณ , ์์กดํ๊ณ , ํด๊ฐ ๊ณํ์ผ๋ก ๋์ด๊ฐ ํ ๋ญ๊ฐ๋ฅผ ํ ์ ์์ต๋๋ค. ๊ทธ๋ ์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ๊นจ๋ซ๊ธฐ ์์ํ๋ฉด ์ธ์์ ๋ฐ๊พธ๋ ์์ฒญ๋ ์ฌ๊ฑด์ด ๋ฉ๋๋ค.
๋ ์์ ๋ ์ฌ๋ฐ๋ฅธ ๋จ์ด๋ฅผ ์ฐพ์ ์ ์์์ง๋ง ์ผ๋ จ์ ํ๋์ ๊ธฐ์ตํ์ต๋๋ค. ์์ ์ ์ด ๋ฐ์์ด ์ธ์ด์ ๋ฐ์๋งํผ์ด๋ ์ก์ฒด์ ์ด๋ฏ๋ก ๊ณต๊ฐ์ด ํ์ํ๋ค๋ ๊ฒ์
๋๋ค. ์ (Zen)์ ์๋ฏธ์์ ๊ทธ๋ฐ ๊ณต๊ฐ. ์ด๊ฒ์ด ๋ฐ๋ก ์ค๋ช
๋์ด์ผ ํ ์ฌํญ์ด๋ฉฐ, ์ฆ์ ๋ฌผ๋ฌ๋์ญ์์ค. ์์ ํ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ฌผ๋ฌ๋์ญ์์ค. ๋ง๋ก ์นจ๋ฌตํ๋ฉด ๊ฐ์ ์ ์ผ๋ก ์ํฉ์ ์ฒ๋ฆฌํ ์ ์๋ค. ์๋๋ ๋ ๋ฆฐ์ด ๋๋์ ๋๋ฌํ๋ฉด ์ ํฌ ๋๋ ๋นํ ๋ชจ๋๋ก ์ ํ๋๊ณ ๋ ์ด์ ์๋ฌด ๋ง๋ ํ ์ ์์ต๋๋ค. ์ด์ ๋น์ ์ ๋ฐ๋ณด์ด๊ณ ์ฑ์ฐ์งํ๋ ์์ง๋์ด์ด๋ฉฐ ์ ์ ํ ๋์๋ ๋ถ๊ฐ๋ฅํ๊ณ ๊ณต๊ฒฉ์ ์ค์งํ ์๋ ์์ผ๋ฉฐ ๊ณต๊ฒฉ์๋ ์์ ๋ก์์ง๋๋ค. ๊ณ์ํด์ ๊ณต๊ฒฉํฉ๋๋ค. ๋น์ ์ ๋จผ์ ๋ค์ ๋น์ ์์ ์ด ๋์ด์ผ ํ๊ณ , ํต์ ๋ ฅ์ ํ๋ณตํ๊ณ , "ํฌ์ ๋๋ ๋ํผ" ๋ชจ๋์์ ๋ฒ์ด๋์ผ ํฉ๋๋ค.
์ด๋ฅผ ์ํด์๋ ์ธ์ด์ ๊ณต๊ฐ์ด ํ์ํฉ๋๋ค. ๊ทธ๋ฅ ์ฌ์ ๊ณต๊ฐ. ๋น์ ์ด ๋ฌด์์ด๋ ๋งํ๋ค๋ฉด, ๋น์ ์ ์ ํํ ๊ทธ๋ ๊ฒ ๋งํ๊ณ ๊ฐ์ ์ ๋ง๋ก ์์ ์ ์ํ "๊ณต๊ฐ"์ ์ฐพ์ ์ ์์ต๋๋ค. ๊ณต์์์ ์ฐ์ฑ ์ ํ๊ณ , ์ค์์ค์ ๋ชธ์ ๊ฐ๋์ญ์์ค. ๊ทธ๊ฒ์ ์ค์ํ์ง ์์ต๋๋ค. ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ํด๋น ์ํฉ์์ ์ผ์์ ์ผ๋ก ์ฐ๊ฒฐ์ ๋๋ ๊ฒ์ ๋๋ค. ์ต์ํ ๋ช ์ด ๋์ ์ค์์น๋ฅผ ๋์๋ง์ ์ ์ด๋ ฅ์ด ํ๋ณต๋๊ณ ๋์ ํ๊ฒ ์๊ฐํ๊ธฐ ์์ํฉ๋๋ค. "์๊ฒ ์ต๋๋ค. ์ ๋ ๋ฐ๋ณด๊ฐ ์๋๋๋ค. ์ ๋ ์ด๋ฆฌ์์ ์ง์ ํ์ง ์์ต๋๋ค. ์ ๋ ๊ฝค ์ ์ฉํ ์ฌ๋์ ๋๋ค." ์์ ์ ์ค๋ํ ์ ์๊ฒ ๋๋ฉด ์ด์ ๋ค์ ๋จ๊ณ์ธ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ฌ๋์ง ์ดํดํ๋ ๋จ๊ณ๋ก ๋์ด๊ฐ ์๊ฐ์ ๋๋ค. ๋น์ ์ ๊ณต๊ฒฉ์ ๋ฐ์์ต๋๋ค. ๊ณต๊ฒฉ์ ๋น์ ์ด ์์ํ์ง ๋ชปํ ๊ณณ์์ ์ผ์ด๋ฌ์ต๋๋ค. ๊ทธ๊ฒ์ ๋ถ์ ์งํ๊ณ ์ฌ์ ํ ๋งค๋ณต์ด์์ต๋๋ค. ์ด๊ฒ์ ๋์๋ค. ๋ค์ ๋จ๊ณ๋ ๊ณต๊ฒฉ์์๊ฒ ์ด๊ฒ์ด ์ ํ์ํ์ง ์ดํดํ๋ ๊ฒ์ ๋๋ค. ์ ๋ง ์? ์ด์ฉ๋ฉด ๊ทธ ์์ ์ด ๋ถ๋ ธํ๊ธฐ ๋๋ฌธ์ผ๊น์? ์ ํ๊ฐ ๋ฌ๋์? ์๋ฅผ ๋ค์ด, ๊ทธ๊ฐ ์์ ์ ๋ง์ณค๊ณ ์ฑ ์์ ์ง ์ ์์ด์? ์ด๊ฒ์ด ์ ์ฒด ์ํฉ์ ์ ์คํ๊ฒ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฅผ ์ํด์๋ ๊ธฐ๋ํ ๊ณต๊ฐ, ์ธ์ด์ ๊ณต๊ฐ์ด ํ์ํฉ๋๋ค. ์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ ์ธ์ด์ ์ ์ด์ ๋๋ ๊ฒ์ ๋๋ค. ๋ง๋ก ํ ๋ก ํ์ง ๋ง์ญ์์ค. ์ทจ์ํ๊ณ ์ต๋ํ ๋นจ๋ฆฌ ๋ ๋์ธ์. ์ ํ ํตํ๋ผ๋ฉด ๊ทธ๋ฅ ๋์ผ์ธ์. ์ด๊ฒ์ ์ ์ฒ์ ๋ํํ๋ฉด์ ๋ฐฐ์ด ๊ธฐ์ ์ ๋๋ค. ๋ํ๊ฐ ์ ์งํ๋์ง ์์ผ๋ฉด "์๋ "์ด๋ผ๊ณ ๋งํ๊ณ ์ ํ๋ฅผ ๋์ผ์ธ์. ์ ํ๊ธฐ ๋ฐ๋ํธ์์ "์ด์ฉ๊ณ ์ ์ฉ๊ณ "๋ผ๊ณ ๋งํ๋ฉด "๊ทธ๋, ์๋ !"์ด๋ผ๊ณ ๋๋ตํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ผ์ธ์. ๊ทธ๋ฅ ๋ํ๋ฅผ ๋๋ด์๋ฉด ๋ฉ๋๋ค. XNUMX๋ถ ํ ํ๋ช ํ๊ฒ ์ฌ๊ณ ํ ์ ์๋ ๋ฅ๋ ฅ์ด ๋์์ค๋ฉด ์กฐ๊ธ ์์ด์ง๊ณ ๋ชจ๋ ๊ฒ์ ๋ํด, ๋ฌด์จ ์ผ์ด ์ผ์ด๋ฌ๊ณ , ๋ค์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋ ๊ฒ์ธ์ง ์๊ฐํ๋ ๊ฒ์ด ๊ฐ๋ฅํด์ง๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋จ์ง ๊ฐ์ ์ ์ผ๋ก ๋ฐ์ํ๊ธฐ๋ณด๋ค๋ ์ฌ๋ ค ๊น์ ๋ฐ์์ ๊ณต์ํํ๊ธฐ ์์ํ์ญ์์ค. ๋์๊ฒ ์์ด์ ์๊ธฐ ์ธ์์ ๋ํ๊ตฌ๋ ๋ฐ๋ก ๊ฐ์ ์ ์คํธ๋ ์ค๊ฐ ์์ ๊ฒฝ์ฐ ๋ง์ ํ ์ ์๋ค๋ ์ฌ์ค์ด์๋ค. ์ด ์ํ์์ ๋ฒ์ด๋ ๋ฌธ์ ์ ๋์ํ๊ณ ๋ณด์ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๊ณ ๊ณํํ๋ ๊ฒ์ด ๋ง์ ํ ์ ์๋ ๊ฒฝ์ฐ์ ์ฌ๋ฐ๋ฅธ ๋จ๊ณ์ ๋๋ค. ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ ์ ์์ ์คํธ๋ ์ค๊ฐ ๋ํ๋๋ ์ํฉ์์ ๋ฒ์ด๋ ๋จ์ํ ์ด๋ฌํ ์คํธ๋ ์ค์ ์ฐธ์ฌํ๋ ๊ฒ์ ์ค๋จํ๋ ๊ฒ์ ๋๋ค. ๊ทธ ํ์๋ ์๊ฐํ ์ ์๊ฒ ๋๊ณ , ์๊ฐํ ์ ์๊ฒ ๋๋ฉด ๋งํ ์๋ ์๊ฒ ๋ฉ๋๋ค.
๊ทธ๊ฑด ๊ทธ๋ ๊ณ , ๋ฒ์ ์์ ์๋๋ฐฉ ๋ณํธ์ฌ๊ฐ ๋น์ ์๊ฒ ์ด๋ฐ ์ผ์ ์๋ํฉ๋๋ค. ์ด์ ๊ทธ ์ด์ ๊ฐ ๋ถ๋ช ํด์ก์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ทธ๋ ๋น์ ์ด ๋น์ ์ ์ด๋ฆ์กฐ์ฐจ ๋ฐ์ํ ์ ์์ ์ ๋๋ก ๋น์ ์ ์ต์ํ๋ ๋ฅ๋ ฅ์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ค์ ๋ก๋ ๋ง์ ํ ์ ์๊ฒ ๋ฉ๋๋ค. ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๊ณ ๋ฒ์๊ณผ ๊ฐ์ด ์ธ์ด ์ธ์์ด ๊ฒฉ๋ ฌํ ๊ณณ์์ ์์ ์ ๋ฐ๊ฒฌํ๊ฒ ๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์๋ค๋ฉด ๋ณํธ์ฌ์ ํจ๊ป ์ค์ญ์์ค. ๋ณํธ์ฌ๊ฐ ๋น์ ์ ๋์ ํด ํญ์ธ์ ๋ฉ์ถ๊ณ , ์์ ํ ํฉ๋ฒ์ ์ธ ๋ฐฉ๋ฒ์ผ๋ก ์ฒ๋ฆฌํด ์ค ๊ฒ์ด๋ฉฐ, ์์ด๋ฒ๋ฆฐ ์ (็ฆช) ๊ณต๊ฐ์ด ๋น์ ์๊ฒ ๋์์ฌ ๊ฒ์ ๋๋ค. ์๋ฅผ ๋ค์ด ๊ฐ์กฑ๋ค์๊ฒ ๋ช ๋ฒ์ด๋ ์ ํ๋ฅผ ํด์ผ ํ๋๋ฐ ํ์ฌ๋ ์ด์ ๋ํด ์๋นํ ์น์ ํ๋๋ฐ, ์๋ ๋ณํธ์ฌ๊ฐ ์ ์๊ฒ ์๋ฆฌ๋ฅผ ์ง๋ฅด๊ณ ์๋ฆฌ๋ฅผ ์ง๋ฅด๋ ๋ฐ๋์ ์ ๋ ํ ๋ง๋๋ ๋ค์ ์ ์์์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์๋ ์ค์ฌ์๋ฅผ ์ด์ฉํ๋ ๊ฒ์ด ๋์๊ฒ ๊ฐ์ฅ ์ ํฉํฉ๋๋ค. ์ค์ฌ์๋ ์ฐ์์ ์ธ ํ๋ฆ์ผ๋ก ๋น์ ์๊ฒ ์์์ง๋ ์ด ๋ชจ๋ ์๋ ฅ์ ๋ฉ์ถ๊ณ , ๋น์ ์ ํ์ํ ์ (็ฆช) ๊ณต๊ฐ์ ์ฐพ๊ณ , ์ด๋ฅผ ํตํด ๋งํ๋ ๋ฅ๋ ฅ์ด ๋์์ต๋๋ค. ์ด๊ฒ์ ๊ณต๋ถํ ๊ฒ์ด ๋ง๊ณ ์ค์ค๋ก ๋ฐ๊ฒฌํ ๊ฒ์ด ๋ง์ ์ง์์ ์ ์ฒด ๋ถ์ผ์ด๋ฉฐ, ์ด ๋ชจ๋ ๊ฒ์ด ์ฌ๋๋ง๋ค ๋ค๋ฅธ ๋์ ์์ค์ ์ ๋ต์ ๊ฒฐ์ ์ผ๋ก ์ ํ๋ฉ๋๋ค. ์์์ ์ค๋ช ํ ๋ฌธ์ ๊ฐ ์๋ ์ฌ๋๋ ์์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ์ ๋ฌธ ์์ ์ฌ์์ธ ๊ฒฝ์ฐ์๋ ์ด๋ฌํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ ๋ช ํ ๊ฐ์, ์์ธ, ์ข ๊ต ์ง๋์, ์ ์น์ธ ๋ฑ ๋ง๋ก ์๊ณ๋ฅผ ์ ์งํ๋ ์ฌ๋๋ค์ ํญ์ ํ ๋ง์ด ์์ต๋๋ค. ๊ทธ๋ค์๊ฒ๋ ๊ทธ๋ฐ ๋ฌธ์ ๊ฐ ์์ง๋ง ๋๋ ์์ต๋๋ค.
์ค๋๋ฅ: ๊ทธ๊ฑด... ์์์น ๋ชปํ ์ผ์ด์์ด. ์ข์์, ์ฐ๋ฆฌ๋ ์ด๋ฏธ ๋ง์ ์ด์ผ๊ธฐ๋ฅผ ๋๋ด๊ณ ์ด์ ์ด ์ธํฐ๋ทฐ๋ฅผ ๋ง๋ฌด๋ฆฌํ ์๊ฐ์ ๋๋ค. ์ฐ๋ฆฌ๋ ๋ฐ๋์ ํ์์์ ๋ง๋ ๊ฒ์ด๋ฉฐ ์ด ๋ํ๋ฅผ ๊ณ์ํ ์ ์์ ๊ฒ์ ๋๋ค. ํ๋๋ผ์์ ๋ง๋๋ณด์ธ์!
2019๋ 11์ 12~2019์ผ ์ํธํํ ๋ฅด๋ถ๋ฅดํฌ์์ ๊ฐ์ต๋๋ Hydra XNUMX ์ปจํผ๋ฐ์ค์์ Cliff์์ ๋ํ๋ฅผ ๊ณ์ํ์ค ์ ์์ต๋๋ค. ๊ทธ๋ ๋ณด๊ณ ์๋ฅผ ๊ฐ์ง๊ณ ์ฌ ๊ฒ์ด๋ค
"Azul ํ๋์จ์ด ํธ๋์ญ์ ๋ฉ๋ชจ๋ฆฌ ๊ฒฝํ" . ํฐ์ผ ๊ตฌ๋งค ๊ฐ๋ฅ๊ณต์ ์น ์ฌ์ดํธ .
์ถ์ฒ : habr.com