์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
1. just-in-time ์ปดํŒŒ์ผ
1.1. JIT ์ปดํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ํ”Œ๋žซํผ์˜ ์˜ˆ
2. 2์ฐจ์‚ฐ์—…์˜ ์ƒ์‚ฐ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜

1. just-in-time ์ปดํŒŒ์ผ[ํŽธ์ง‘]

์ปดํ“จํ„ฐ ๊ณผํ•™๊ณผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์šฉ์–ด. C๋‚˜ C++์—์„œ ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ์ฒ˜์Œ ํ•œ ๋ฒˆ ์ปดํŒŒ์ผ[1]ํ•˜๋Š” ๋Œ€์‹ , ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š” ์‹œ์ ์—์„œ ํ•„์š”ํ•œ ๋ถ€๋ถ„์„ ์ฆ‰์„์œผ๋กœ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค.

๋ณดํ†ต ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋ฐฉ์‹์˜ ์–ธ์–ด ๊ตฌํ˜„๋“ค์ด ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ชฉ์ ์œผ๋กœ ๋„์ž…ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€๋ฐ, JIT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ๋งค๋ฒˆ ํ•ด์„ํ•˜๋Š” ๋Œ€์‹  ์ฒ˜์Œ ์‹คํ–‰๋  ๋•Œ ์ธํ„ฐํ”„๋ฆฌํŠธ๋ฅผ ํ•˜๋ฉด์„œ ์ž์ฃผ ์“ฐ์ด๋Š” ์ฝ”๋“œ๋ฅผ ์บ์‹ฑํ•œ ๋’ค[2], ์ดํ›„์—๋Š” ์บ์‹ฑ๋œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ๋‹ค ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ์ธํ„ฐํ”„๋ฆฌํ„ฐ์˜ ๋А๋ฆฐ ์‹คํ–‰ ์†๋„๋ฅผ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ์‹ค JIT '์ปดํŒŒ์ผ๋Ÿฌ'๋ณด๋‹ค๋Š” JIT '์ธํ„ฐํ”„๋ฆฌํ„ฐ'๊ฐ€ ๋” ์ •ํ™•ํ•œ ํ‘œํ˜„์ด๋‹ค. ๋ฐ”์ดํŠธ์ฝ”๋“œ ์ปดํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” Java๋„ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญํ•  ๋•Œ JIT ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

๋‹จ์ ์ด๋ผ๋ฉด ์ดˆ๊ธฐ ๊ตฌ๋™ ์‹œ์—๋Š” ์†Œ์Šค ์ฝ”๋“œ(ํ˜น์€ ๋ฐ”์ดํŠธ์ฝ”๋“œ)๋ฅผ ์‹คํ–‰ ๋‹จ๊ณ„์—์„œ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐ์— ์‹œ๊ฐ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์†Œ๋ชจํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •์  ์ปดํŒŒ์ผ๋œ ํ”„๋กœ๊ทธ๋žจ์— ๋น„ํ•ด ์‹คํ–‰ ์†๋„ ๋ฉด์—์„œ ์†ํ•ด๋ฅผ ๋ณธ๋‹ค๋Š” ๊ฒƒ์œผ๋กœ, ํŠนํžˆ ์‹คํ–‰ ์‹œ๊ฐ„์ด ๋งค์šฐ ์งง์€ ๊ฒฝ์šฐ์—๋Š” ์• ์จ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๋ฅผ ์ œ๋Œ€๋กœ ์šธ๊ถˆ๋จน๊ธฐ๋„ ์ „์— ํ”„๋กœ๊ทธ๋žจ์ด ๋๋‚˜๋Š” ๋ฐฐ๋ณด๋‹ค ๋ฐฐ๊ผฝ์ด ๋” ํฐ ์ƒํ™ฉ์ด ๋ฒŒ์–ด์ง€๊ธฐ๋„ ํ•œ๋‹ค.[3]

ํฌ๊ฒŒ ๋‚˜๋ˆ ์„œ HotSpot VM๊ณผ ๊ฐ™์ด ๋ฉ”์†Œ๋“œ(ํ•จ์ˆ˜) ๋‹จ์œ„๋กœ JIT ์ปดํŒŒ์ผ์„ ํ•˜๋Š” ๋ฐฉ์‹๊ณผ, ๊ทธ๋ณด๋‹ค ๋” ์ž‘์€ ๋‹จ์œ„์—์„œ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ํ๋ฆ„์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ถ”์ ํ•˜๋ฉฐ ์ปดํŒŒ์ผํ•  ์ฝ”๋“œ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” Tracing JIT ๋ฐฉ์‹์œผ๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠนํžˆ Tracing JIT์˜ ๊ฒฝ์šฐ์—๋Š” ์‹คํ–‰ ์‹œ์ ์—๋งŒ ์•Œ ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ปดํŒŒ์ผ์— ์ ๊ทน์ ์œผ๋กœ ๋ฐ˜์˜[4]ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ก ์ ์œผ๋กœ๋Š” ์ •์  ์ปดํŒŒ์ผ ๋ฐฉ์‹๋ณด๋‹ค ์ปดํŒŒ์ผ ์†๋„๊ฐ€ ๋” ๋นจ๋ผ์งˆ ์ˆ˜๋„ ์žˆ๋‹ค.

๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ๋Ÿฐํƒ€์ž„์— ๋™์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์‹คํ–‰ํ•œ๋‹ค๋Š” ํŠน์ง• ๋•Œ๋ฌธ์— JIT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ž ์žฌ์ ์œผ๋กœ ์ƒ๋‹นํ•œ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ํŠนํžˆ JIT ์ปดํŒŒ์ผ๋Ÿฌ ์ž์ฒด์— ๋ฒ„๊ทธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ๊ณง๋ฐ”๋กœ ๋ณด์•ˆ์ทจ์•ฝ์ ์ด ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ์ธํ…” CPU ๊ฒŒ์ดํŠธ๋กœ ์œ ๋ช…ํ•œ ์ŠคํŽ™ํ„ฐ ๋ณด์•ˆ์ทจ์•ฝ์ ์€ JIT์— ์˜์กดํ•˜๋Š” JavaScript ์—”์ง„์„ ๊ฐ€์ง„ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋งŒ ๋ฐœ์ƒํ–ˆ๋‹ค. ์˜ค๋ผํด์˜ HotSpot VM ๋˜ํ•œ JIT ์ปดํŒŒ์ผ๋Ÿฌ ๋ฒ„๊ทธ๋กœ ์ธํ•œ ๋‹ค์ˆ˜์˜ ๋ณด์•ˆ์ทจ์•ฝ์ ์ด ์žˆ์—ˆ๋‹ค.

์ฐธ๊ณ ๋กœ iOS์—์„œ๋Š” ์ƒ๊ธฐํ•œ ๋ณด์•ˆ๋ฌธ์ œ๋ฅผ ์ด์œ ๋กœ ๋„คํŠธ์›Œํฌ๋กœ ๋ฐ”์ด๋„ˆ๋ฆฌ๋‚˜ ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋ฐ›์•„ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ๊ธˆ์ง€ํ•˜๊ณ  ์žˆ๋‹ค. ๊ตฌ๊ธ€ ํฌ๋กฌ์ด๋‚˜ ํŒŒ์ด์–ดํญ์Šค์˜ iOS ๋ฒ„์ „์ด ์ž์ฒด ์—”์ง„์„ ์“ฐ์ง€ ๋ชปํ•˜๊ณ  ์• ํ”Œ์ด ์ œ๊ณตํ•˜๋Š” WebKit์˜ ์›น๋ทฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋ฐ–์— ์—†๋Š” ์ฃผ์š” ์ด์œ  ์ค‘ ํ•˜๋‚˜๋‹ค.[5] ์š”์ฆ˜ ๋ธŒ๋ผ์šฐ์ €๋“ค์€ JavaScript ์—”์ง„์œผ๋กœ JIT๋ฅผ ์“ฐ๊ธฐ ๋•Œ๋ฌธ. iOS๋„ ํŽธ๋ฒ•์œผ๋กœ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜๋‚˜ ์ •์ฑ…์ด ์ด๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์•„ ์Šคํ† ์–ด์— ์˜ฌ๋ฆด ๋•Œ Reject๋œ๋‹ค.

1.1. JIT ์ปดํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ํ”Œ๋žซํผ์˜ ์˜ˆ[ํŽธ์ง‘]

2. 2์ฐจ์‚ฐ์—…์˜ ์ƒ์‚ฐ๋ฐฉ์‹ ์ค‘ ํ•˜๋‚˜[ํŽธ์ง‘]

ํ•œ๊ธ€๋กœ ์ ๊ธฐ์ƒ์‚ฐ๋ฐฉ์‹ ๋‚ด์ง€๋Š” ์ ์‹œ์ƒ์‚ฐ๋ฐฉ์‹์œผ๋กœ ๋ถˆ๋ฆฌ๋ฉฐ 1950๋…„๋Œ€์— ์ผ๋ณธ์—์„œ ์—ฐ๊ตฌ, 1960๋…„๋Œ€์— ์ผ๋ณธ ์กฐ์„ ์†Œ ๋“ฑ์ง€์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋‹ค๊ฐ€ ๋™์‹œ๊ธฐ ํ† ์š”ํƒ€ ์ž๋™์ฐจ์—์„œ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์œ ๋ช…ํ•ด์ง„ ๋ฐฉ์‹์œผ๋กœ ํ”ํžˆ "์นธ๋ฐ˜(๊ฐ„ํŒ) ์‹œ์Šคํ…œ"์ด๋ผ๊ณ ๋„ ์•Œ๋ ค์ ธ ์žˆ๋‹ค. ๋‹ค๋งŒ ์นธ๋ฐ˜ ์‹œ์Šคํ…œ์€ JIT์˜ ํ•˜์œ„ ๊ตฌ์„ฑ ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜์ผ ๋ฟ์œผ๋กœ JIT๋Š” ํ›จ์”ฌ ๋„“์€ ๋ฒ”์œ„๋ฅผ ํฌ๊ด„ํ•œ๋‹ค.

ํ”ํžˆ๋“ค ํ† ์š”ํƒ€๊ฐ€ ์ฐฝ์•ˆํ•œ ๊ฒƒ์œผ๋กœ ์ž˜๋ชป ์•Œ๋ ค์ ธ ์žˆ์ง€๋งŒ ์ด๋Š” ํ† ์š”ํƒ€์˜ ๋ฏธ๊ตญ์‹œ์žฅ ์„ฑ๊ณต์œผ๋กœ ์ธํ•ด ํ† ์š”ํƒ€๋ฅผ ๋ฒค์น˜๋งˆํ‚น ํ•˜์ž๋Š” ์›€์ง์ž„์˜ ์ผํ™˜์œผ๋กœ ์„œ๊ตฌ๊ถŒ ๊ฒฝ์˜ํ•™์ด๋‚˜ ์‚ฐ์—…๊ณตํ•™ ์ชฝ์—์„œ ํ† ์š”ํƒ€์— ์ดˆ์ ์„ ๋งž์ถฐ ์—ฐ๊ตฌํ•˜๋ฉด์„œ ํ•™๋ฌธ์  ์ฒด๊ณ„๋ฅผ ์„ธ์šฐ๋‹ค๊ฐ€ ๋ณด๋‹ˆ ๋ฒŒ์–ด์ง„ ์˜คํ•ด๋กœ JIT ์ž์ฒด๋Š” ์ „๋ฐ˜์ ์œผ๋กœ ์ผ๋ณธ ์ œ์กฐ์—…์— ๋„๋ฆฌ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์‹œํ–‰๋˜์—ˆ๋˜ ๋ฐฉ์‹์— ๊ฐ€๊น๋‹ค. ๋Œ€์ฒด๋กœ ๊ณต๊ธ‰๋ง ๋‚ด์˜ ์žฌ๊ณ ๋ฅผ ์ตœ๋Œ€ํ•œ ๋‚ฎ์ถ”๊ธฐ ์œ„ํ•ด ์ƒ์‚ฐ ์‹œ์Šคํ…œ ์ „๋ฐ˜์„ ๊ธฐ๋ฏผํ™”ํ•˜์—ฌ ๊ณผ์ƒ์‚ฐ, ์žฌ๊ณ , ๋Œ€๊ธฐ, ๋ฐฐ์†ก, ๋ถˆ๋Ÿ‰ํ’ˆ ๋“ฑ๊ณผ ๊ฐ™์€ ๋‚ญ๋น„๋ฅผ ์—†์•ค๋‹ค๋Š” ๊ฐœ๋…์ธ๋ฐ, ๋ง๋กœ๋Š” ๊ฐ„๋‹จํ•ด ๋ณด์ด์ง€๋งŒ 60๋…„๋Œ€์—์„œ 70๋…„๋Œ€ ์‹œ์ ์—์„œ ์š”์ฆˆ์Œ ๊ฐ™์€ ์ธํ„ฐ๋„ท์ด๋‚˜ ์ปดํ“จํ„ฐ๋„ ์—†์ด ์ด๋Ÿฌํ•œ ์ฒด๊ณ„๋ฅผ ๊ตฌ์ถ•ํ•œ ๋‹ค๋Š” ๊ฒƒ์ด ์‰ฌ์šด ์ผ์€ ์•„๋‹ˆ์—ˆ๋‹ค.

์‹œ์Šคํ…œ ์กฐ์ ˆ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ ์ƒ์‚ฐ ์นด๋“œ, ์ปจํ…Œ์ด๋„ˆ ๋“ฑ์ด ์žˆ๋Š”๋ฐ, ์นด๋“œ์˜ ๊ฒฝ์šฐ B ์ž‘์—…์žฅ์—์„œ ์ƒ์‚ฐ์„ ์œ„ํ•œ ๋ถ€์กฑํ•œ ๋ถ€ํ’ˆ์ด๋‚˜ ์ œํ’ˆ์„ A ์ž‘์—…์žฅ์— ์นด๋“œ๋ฅผ ์ œ์ถœํ•จ์œผ๋กœ์„œ ์ƒ์‚ฐ ์š”์ฒญ์„ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•„์š”ํ•œ ๋งŒํผ๋งŒ ์ƒ์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ์˜ ๊ฒฝ์šฐ A, B ์ž‘์—…์žฅ ์‚ฌ์ด๋ฅผ ๊ฐœ์ˆ˜๊ฐ€ ์ •ํ•ด์ง„ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋ฌผํ’ˆ์„ ์ˆ˜์†กํ•˜๋Š” ๋ฐฉ์‹์ธ๋ฐ, ๋งŒ์•ฝ A ์ž‘์—…์žฅ์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋งŽ์ด ๋‚จ์•„์žˆ๋‹ค๋ฉด A์˜ ์ž‘์—…๋Ÿ‰์ด ๋’ค์ณ์ ธ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋ฏ€๋กœ ํ›„์† ์ž‘์—…์žฅ์ธ B ์ž‘์—…์žฅ์—์„œ ์ž‘์—… ์ฐจ์งˆ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋ˆˆ์— ํ™•์‹คํžˆ ๋ณด์ธ๋‹ค. ๋ฐ˜๋Œ€๋กœ, B ์ž‘์—…์žฅ์— ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋งŽ์ด ๋‚จ์•„์žˆ๋‹ค๋ฉด, A ์ž‘์—…์žฅ์—์„œ ๋„ˆ๋ฌด ์ž‘์—…์„ ๋นจ๋ฆฌ ํ–ˆ๋‹ค๋˜๊ฐ€, B ์ž‘์—…์žฅ์—์˜ ์ž‘์—…์ด ๋’ค์ณ์ ธ ์žˆ๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ๋œ๋‹ค. ์ปจํ…Œ์ด๋„ˆ๋ผ๋Š” ์‹œ๊ฐ์ ์ธ ์ƒ์‚ฐ ์ง€ํ‘œ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ํ˜„์žฅ์—์„œ ์ž‘์—…์„ ์„œ๋‘๋ฅผ์ง€, ์กฐ๊ธˆ ์†๋„๋ฅผ ๋Šฆ์ถœ์ง€ ํ•œ๋ˆˆ์— ํŒŒ์•…์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ.

80๋…„๋Œ€ ์„œ๊ตฌ๊ถŒ ์—…์ฒด๋“ค์ด ์ผ๋ณธ๊ฒฝ์ œ์˜ ์„ฑ๊ณต์„ ๋ฒค์น˜๋งˆํ‚น ํ•˜๋Š” ๊ณผ์ •์—์„œ ๋“ค๋ถˆ ๋ฒˆ์ง€๋“ฏ ์œ ํ–‰ํ–ˆ๊ณ  87๋…„ ๋ฏธ๊ตญ ๊ธฐ์—…์˜ 25%, 92๋…„์—๋Š” 55%๊ฐ€ ํ•ด๋‹น ๋ฐฉ์‹์„ ๋„์ž…ํ–ˆ๋‹ค. 90๋…„๋Œ€ ์ดํ›„๋กœ๋Š” ๋ฆฐ-์ œ์กฐ๋ฐฉ์‹ ๋‚ด์ง€๋Š” SCM ๋“ฑ ๋ณด๋‹ค ๊ฐœ์„ ๋œ ๋ฐฉ์‹์œผ๋กœ ๋ฐœ์ „ํ•˜์˜€๋‹ค.
[1] JIT ์ปดํŒŒ์ผ์— ๋Œ€๋น„๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ •์  ์ปดํŒŒ์ผ(Static Compilation) ๋˜๋Š” AOT ์ปดํŒŒ์ผ(Ahead-Of-Time Compilation)์ด ์žˆ๋‹ค. ์ •์  ์ปดํŒŒ์ผ๊ณผ AOT ์ปดํŒŒ์ผ์˜ ์ฐจ์ด์ ์€ ์›์‹œ ์ฝ”๋“œ๋ฅผ ๊ณง๋ฐ”๋กœ ๊ธฐ๊ณ„์–ด๋กœ ์ปดํŒŒ์ผํ•˜๋А๋ƒ, ๋ฏธ๋ฆฌ ํ•ด์„๋˜์–ด ์žˆ๋Š” ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ์žฌ์ฐจ ์ปดํŒŒ์ผํ•˜๋А๋ƒ์˜ ์ฐจ์ด. JIT์™€ AOT์˜ 'Time'์€ Runtime, ์ฆ‰ ์‹คํ–‰ ์‹œ๊ฐ„์„ ๋งํ•œ๋‹ค.
[2] Java Virtual Machine์˜ ๊ฒฝ์šฐ ๋ฉ”์†Œ๋“œ ์˜์—ญ์— ์žˆ๋Š” ์ฝ”๋“œ ์บ์‹œ(Code Cache) ๊ณต๊ฐ„์— JIT๋กœ ์ปดํŒŒ์ผ๋œ ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ๋ฅผ ์บ์‹ฑํ•œ๋‹ค.
[3] ๋ณดํ†ต ๊ทธ ์ •๋„๋กœ ์‹คํ–‰์‹œ๊ฐ„์ด ์งง์€ ํ”„๋กœ๊ทธ๋žจ์€ ์–ด์ฐจํ”ผ ์ปดํŒŒ์ผํ•ด์„œ ๋Œ๋ฆฌ๋‚˜ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋กœ ๋Œ๋ฆฌ๋‚˜ ๋ช‡ ์ดˆ ์ฐจ์ด๋‚˜์ง€๋„ ์•Š๋Š” ๊ฒฝ์šฐ๋ผ ์˜คํžˆ๋ ค ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋กœ ์งœ๊ณ  ๋Œ€์ถฉ ๋Œ๋ฆฌ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ธด ํ•˜์ง€๋งŒ, ๋ฒค์น˜๋งˆํฌ๋ฅผ ํ•  ๋•Œ๋Š” ์ด๊ฒƒ ๋•Œ๋ฌธ์— ๋ณธ์˜ ์•„๋‹ˆ๊ฒŒ ํ‰ํŒ์„ ๊นŽ์•„๋จน๊ณค ํ•œ๋‹ค. ํŠนํžˆ ์ดˆ์‹ฌ์ž๋“ค์ด JIT ๋”ฐ์œ„ ๊ณ ๋ คํ•˜์ง€ ์•Š์€ ์–ด์„คํ”ˆ ๋ฒค์น˜๋งˆํฌ ์ฝ”๋“œ๋ฅผ ์งœ๋†“๊ณ  "์•„ Java ๊ตฌ๋ฆฌ๋„ค C ๋งŒ์„ธ" ์ด๋Ÿฌ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๊ฐ„ํ˜น ์žˆ๋‹ค.
[4] ๊ฐ€๋Šฅํ•œ ์ตœ์ ํ™”์˜ ์˜ˆ๋กœ, ๋ฃจํ”„ ๋‚ด์—์„œ ์–ด๋–ค ๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ž์ฃผ ๋ถ€๋ฅธ๋‹ค๋Š” ๊ฑธ ํŒŒ์•…ํ•˜๋ฉด ์ปดํŒŒ์ผํ•  ๋•Œ ๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ๋™์ ์œผ๋กœ ์ฐพ๋Š” ๋Œ€์‹  ํ•ด๋‹น ๋ฉ”์†Œ๋“œ์˜ ์œ„์น˜๋ฅผ ์ •์ ์œผ๋กœ ๋ฐ”์ธ๋”ฉํ•  ์ˆ˜ ์žˆ๋‹ค.
[5] ๋ฌผ๋ก  ๊ฐ€์žฅ ํฐ ์ด์œ ๋Š” ์• ํ”Œ์ด ์„œ๋“œํŒŒํ‹ฐ ์›น ๋ธŒ๋ผ์šฐ์ € ์—”์ง„์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์•„์„œ์ด๊ธด ํ•˜๋‹ค.
[6] LLVM API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ LLVM IR๋ฅผ ์ปดํŒŒ์ผํ•˜๋ฉด ๋œ๋‹ค. Clang์—์„œ LLVM IR์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, C/C++ ์ „์šฉ JIT ์ปดํŒŒ์ผ๋Ÿฌ ํ”„๋ก ํŠธ์—”๋“œ๋„ ์žˆ๋‹ค.
[7] 2017๋…„์— Lua 5.1 ๋ฒ„์ „์— ๋Œ€ํ•œ ์ง€์›์„ ๋์œผ๋กœ ์ง€์›์ด ์ค‘๋‹จ๋˜์—ˆ๋‹ค.
[8] 4.4๋ถ€ํ„ฐ 6.0๊นŒ์ง€์˜ ART๋Š” JIT์ด ์•„๋‹ˆ๋‹ค.
[9] ์•ˆ๋“œ๋กœ์ด๋“œ ๋ˆ„๊ฐ€๋ถ€ํ„ฐ JIT์„ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.