์ด ๋ฌธ์„œ์˜ ์›๋ณธ์€ ์™ธ๋ถ€ ์œ„ํ‚ค์—์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค.
ART์—์„œ ๋„˜์–ด์˜ด
1. ๊ฐœ์š”2. ์ ์šฉ3. JIT vs AOT
3.1. ๋ฐฐ๊ฒฝ3.2. ์•ˆ๋“œ๋กœ์ด๋“œ ๋ฒ„์ „๋ณ„ ์—ญ์‚ฌ3.3. ์ƒ์„ธ3.4. ์™œ ์ด๋Ÿฐ ๊ตฌ์กฐ๋ฅผ ์“ฐ๊ณ  ์žˆ์—ˆ๋‚˜?3.5. ์„ฑ๋Šฅ ๊ฐœ์„ 3.6. ๋‹จ์ 
3.6.1. ์ƒ์šฉ ์•ฑ์˜ ์†๋„๋Š” ์–ผ๋งˆ๋‚˜ ๊ฐœ์„ ๋  ๊ฒƒ์ธ๊ฐ€?
3.7. ์˜คํ•ด
4. ART์™€ ๊ฐ€์ƒ๋จธ์‹ 5. Xposed ํ”„๋ ˆ์ž„์›Œํฌ์™€์˜ ํ˜ธํ™˜์„ฑ


Android Runtime

1. ๊ฐœ์š”[ํŽธ์ง‘]

์•ˆ๋“œ๋กœ์ด๋“œ์—์„œ ์‚ฌ์šฉ๋˜๋˜ ๊ธฐ์กด์˜ ๋‹ฌ๋น…VM์˜ ํ•œ๊ณ„์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ตฌ๊ธ€์—์„œ ์ƒˆ๋กœ ๊ฐœ๋ฐœํ•œ ๋Ÿฐํƒ€์ž„(์‹คํ–‰ํ™˜๊ฒฝ).

์•ˆ๋“œ๋กœ์ด๋“œ ๋Ÿฐํƒ€์ž„(Android RunTime)์„ ์ค„์—ฌ์„œ ART๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.

2016๋…„ ํ•˜๋ฐ˜๊ธฐ์— ์ถœ์‹œ๋œ ์•ˆ๋“œ๋กœ์ด๋“œ ๋ˆ„๊ฐ€๋ถ€ํ„ฐ, ART๋ผ๊ณ  ํ•ด์„œ ๋ฌด์กฐ๊ฑด AOT์ธ ๊ฒƒ์€ ์•„๋‹ˆ๋ฏ€๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์„œ์ˆ ํ•  ๊ฒƒ.

2. ์ ์šฉ[ํŽธ์ง‘]

ํ‚ท์บฃ ๋ฒ„์ „์—์„œ ์ฒ˜์Œ์œผ๋กœ ์„ ๋ณด์˜€๋‹ค.[1]
์•ˆ๋“œ๋กœ์ด๋“œ 5.0 ๋กค๋ฆฌํŒ(Lolipop)๋ถ€ํ„ฐ๋Š” ๋‹ฌ๋น…VM์„ ์™„์ „ํžˆ ํ์ง€ํ•˜๊ณ  ART๋ฅผ ์ƒˆ๋กœ์šด ๋Ÿฐํƒ€์ž„์œผ๋กœ ์™„์ „ํžˆ ๋Œ€์ฒดํ–ˆ๋‹ค. ๋˜ํ•œ ์œ„์— ์„ค๋ช…ํ–ˆ๋“ฏ์ด ART๊ฐ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ ์ ๋•Œ๋ฌธ์— x86, mips ์•„ํ‚คํ…์ฒ˜ ๋ฐ 64๋น„ํŠธ๋ฅผ ๊ณต์‹์ ์œผ๋กœ ์ง€์›ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.[2]

3. JIT vs AOT[ํŽธ์ง‘]

3.1. ๋ฐฐ๊ฒฝ[ํŽธ์ง‘]

์ผ๋ฐ˜์ ์ธ ์ปดํŒŒ์ผ ์–ธ์–ด๋Š” CPU์˜ ์•„ํ‚คํ…์ณ์™€ ํ”Œ๋žซํผ์˜ ํ™˜๊ฒฝ์— ๋งž์ถ”์–ด ๊ธฐ๊ณ„์–ด๋กœ ์ปดํŒŒ์ผ๋œ๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•˜์ž๋ฉด, ์‚ฌ๋žŒ์ด ์ž‘์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ์„ CPU๊ฐ€ ์•Œ์•„๋“ค์„ ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๋กœ ๋ฐ”๋กœ ๋ฒˆ์—ญํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด CPU๊ฐ„์˜ ์„œ๋กœ ๋‹ค๋ฅธ "์–ธ์–ด"๊ฐ€ "์•„ํ‚คํ…์ณ"์— ํ•ด๋‹นํ•œ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜, ์ž๋ฐ”์˜ ๊ฒฝ์šฐ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•œ ๊ฐ€์ง€ CPU์˜ ์•„ํ‚คํ…์ณ๋‚˜ ํ™˜๊ฒฝ์— ๋งž์ถ”๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ผ๋Š” ๊ฒƒ์œผ๋กœ ์ปดํŒŒ์ผ ๋˜๋ฉฐ, ์ด๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋Š” ์ด์œ ๋Š” ์ž๋ฐ”๋Š” ๋ฐ”์ดํŠธ์ฝ”๋“œ ํ•˜๋‚˜๋งŒ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์•„ํ‚คํ…์ณ๋‚˜ ํ”Œ๋žซํผ์—์„œ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์•„ํ‚คํ…์ณ์™€ ํ”Œ๋žซํผ์— ๋งž๋Š” ๊ฐ€์ƒ๋จธ์‹ ๋งŒ ์žˆ๋‹ค๋ฉด ํ•˜๋‚˜์˜ ์‹คํ–‰ ํŒŒ์ผ๋งŒ ๊ฐ€์ง€๊ณ ๋„ ๊ฐ์ข… ์žฅ์น˜์—์„œ ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ํ”Œ๋žซํผ์ด ์•ˆ ๋งž์•„์„œ ์ž‘๋™์‹œํ‚ค์ง€ ๋ชปํ•˜๋Š” ์˜ˆ์‹œ๊ฐ€ ์•ˆ๋“œ๋กœ์ด๋“œ โ†” iOS ํ˜น์€ ์œˆ๋„์šฐโ†”๋งฅโ†”๋ฆฌ๋ˆ…์Šค ๊ฐ„์˜ ํ˜ธํ™˜์ด ์•ˆ ๋˜๋Š” ๊ฒฝ์šฐ์ด๊ณ , ์•„ํ‚คํ…์ณ๊ฐ€ ์•ˆ ๋งž์•„์„œ ์ž‘๋™์‹œํ‚ค์ง€ ๋ชปํ•˜๋Š” ์˜ˆ์‹œ๊ฐ€ ์œˆ๋„์šฐ 8 โ†”์œˆ๋„์šฐ 8 RT ๊ฐ„์˜ ํ˜ธํ™˜์ด ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค.

์•ˆ๋“œ๋กœ์ด๋“œ๋„ Java ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— VM์ด ํ•„์ˆ˜์ ์ด๋‹ค. ์ด์— ์ž๋ฐ” ๊ฐ€์ƒ๋จธ์‹ (JVM)์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, JVM์€ ๋ผ์ด์„ ์Šค ๋ฌธ์ œ[3]๊ฐ€ ์žˆ์–ด์„œ ๊ตฌ๊ธ€์—์„œ๋Š” Dalvik VM์„ ๋”ฐ๋กœ ๊ฐœ๋ฐœํ•ด์„œ ์•ˆ๋“œ๋กœ์ด๋“œ์— ๋„ฃ์—ˆ๋‹ค.

3.2. ์•ˆ๋“œ๋กœ์ด๋“œ ๋ฒ„์ „๋ณ„ ์—ญ์‚ฌ[ํŽธ์ง‘]

  • ์•ˆ๋“œ๋กœ์ด๋“œ 2.2 ํ”„๋กœ์š” ๋ฒ„์ „ ์ด์ „์˜ ๋‹ฌ๋น… VM์—์„œ๋Š”, ์•ฑ์ด ๊ตฌ๋™๋˜๋Š” ์™€์ค‘์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ CPU์— ๋งž๊ฒŒ ๋ณ€ํ™˜ํ•˜์˜€๋‹ค.
  • ์•ˆ๋“œ๋กœ์ด๋“œ 2.2 ํ”„๋กœ์š” ๋ฒ„์ „ ์ดํ›„์˜ ๋‹ฌ๋น… VM์—์„œ๋Š”, JIT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ถ”๊ฐ€๋˜์–ด ์•ฑ ์ตœ์ดˆ ์‹คํ–‰์‹œ์— ์ž๋ฐ” ์ฝ”๋“œ๊ฐ€ ์ผ์ • ๋ถ€๋ถ„ ํ•œ๊บผ๋ฒˆ์— ๋ณ€ํ™˜์ด ๋˜๋ฉฐ, ๋ณ€ํ™˜๋œ ๋‚ด์šฉ์„ ๋žจ ์ƒ์— ์˜ฌ๋ ค ๋†“๊ณ  ์ž‘์—…ํ•˜๊ฒŒ ๋œ๋‹ค.
  • ์•ˆ๋“œ๋กœ์ด๋“œ 5.0 ๋กค๋ฆฌํŒ ๋ฒ„์ „ ์ดํ›„์˜ ART VM์—์„œ๋Š”, AOT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ์ ์šฉ๋˜์–ด ํ”„๋กœ๊ทธ๋žจ ์ตœ์ดˆ ์‹คํ–‰์‹œ๊ฐ€ ์•„๋‹Œ, ๊ทธ ์ด์ „์—(์ฃผ๋กœ ์„ค์น˜์‹œ์—) ํ•œ๋ฒˆ์— ์ „์ฒด๋ฅผ ๋ณ€ํ™˜ํ•ด ๋‘๊ณ  ์ €์žฅํ•œ ๋’ค, ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์‹œ ๋งˆ๋‹ค ๋ณ€ํ™˜๋œ ์ฝ”๋“œ๋ฅผ ์ฝ์–ด๋“ค์ด๊ฒŒ ๋œ๋‹ค.[4]
  • ์•ˆ๋“œ๋กœ์ด๋“œ ๋ˆ„๊ฐ€ ์ดํ›„์˜ ART VM์—์„œ๋Š”, JIT์™€ AOT๋ฅผ ๋ชจ๋‘ ํƒ‘์žฌํ•จ์œผ๋กœ์จ ์ตœ์ดˆ ์„ค์น˜์‹œ์—๋Š” ๋ฌด์กฐ๊ฑด JIT๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜์—ฌ ์„ค์น˜์‹œ๊ฐ„๊ณผ ์šฉ๋Ÿ‰์„ ์ ๊ฒŒ ์†Œ๋ชจํ•˜๋„๋ก ํ•œ ๋’ค, ์ฐจํ›„ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๊ฐ ๋ฐฉ์‹์„ ์œ ์—ฐํ•˜๊ฒŒ ์ ์šฉํ•˜๋„๋ก ํ•˜์˜€๋‹ค.

3.3. ์ƒ์„ธ[ํŽธ์ง‘]

JIT(Just-In-Time) ์ปดํŒŒ์ผ๋Ÿฌ ์ด์ „์—๋Š”, ์•ฑ์ด ๊ตฌ๋™๋˜๋Š” ์™€์ค‘์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ž๋ฐ” ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ CPU์— ๋งž๊ฒŒ ๋ณ€ํ™˜ํ•˜์˜€๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ JIT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋“ค์–ด๊ฐ€๊ณ ๋ถ€ํ„ฐ๋Š” ์•ฑ ์ตœ์ดˆ ์‹คํ–‰์‹œ์— ์ž๋ฐ” ์ฝ”๋“œ๊ฐ€ ์ผ์ • ๋ถ€๋ถ„ ์บ์‹ฑ๋˜์–ด, ์ฐจํ›„ ์‹คํ–‰์‹œ์—๋Š” ์บ์‹œ์— ์ €์žฅ๋œ ์ฝ”๋“œ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์‹์œผ๋กœ ์ž‘์—…ํ•˜๊ฒŒ ๋œ๋‹ค.

์ด๋Ÿฌํ•œ JIT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด์„œ ์„ฑ๋Šฅ์€ ํ–ฅ์ƒ๋˜์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค. JIT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋Œ์•„๊ฐ€๋Š”๋ฐ ์‹คํ–‰์‹œ๋งˆ๋‹ค ํ•˜๋“œ์›จ์–ด ์ „์ฒด์ ์œผ๋กœ ์ƒ๋‹นํ•œ ๋ถ€ํ•˜๊ฐ€ ์ƒ๊ฒจ ๋ฐฐํ„ฐ๋ฆฌ ์‹œ๊ฐ„์ด ์•ˆ์Šต์ด ๋ผ๋ฒ„๋ฆฌ๋Š” ๋ถˆ์ƒ์‚ฌ๊ฐ€ ํ„ฐ์ง„ ๊ฒƒ. ํ™”๋ฉด ์ „ํ™˜์ด ๋งŽ์„์ˆ˜๋ก[5] ๋ฐฐํ„ฐ๋ฆฌ๋Š” ๋”์šฑ ๋” ์•ˆ์Šต์ด ๋˜์–ด๋ฒ„๋ ธ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ๋‹ฌ๋น…์€ ์‹คํ–‰ ์ง์ „์— ์‹คํ–‰ ๋ถ€๋ถ„ ์ „์ฒด๋ฅผ RAM์—๋‹ค๊ฐ€ ์˜ฌ๋ ค๋†”์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ์•ฑ์ด ๋‹ค๋ฅธ OS๋ณด๋‹ค ๋žจ์„ ๋” ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ํƒ“์— ๋žจ๊ณ ์ž๋ผ๊ณ ๋„ ์•Œ๋ ค์ ธ ์žˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— ์•ˆ๋“œ๋กœ์ด๋“œ๋Š” ํ•œ ๋•Œ iOS์™€ ๋งŽ์ด ๋น„๊ต๋˜๋ฉด์„œ ๊ฐ€๋ฃจ๊ฐ€ ๋˜๋„๋ก ๊นŒ์ด๊ฒŒ ๋˜๋Š” ์›์ธ์ด ๋˜์–ด๋ฒ„๋ ธ๋‹ค. ๋˜ํ•œ, ์•ˆ๋“œ๋กœ์ด๋“œ์— ํ”„๋กœ์„ธ์„œ ํ‚ฌ๋Ÿฌ๋ฅผ ํ•จ๋ถ€๋กœ ์“ฐ๋ฉด ์•ˆ ๋œ๋‹ค๋Š” ๋ง๋„ ์—ฌ๊ธฐ์—์„œ ๋‚˜์˜จ ๊ฒƒ.

์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ตฌ๊ธ€์—์„œ ์ƒˆ๋กœ ๊ฐœ๋ฐœํ•ด๋‚ธ ๊ฒƒ์ด ART๋กœ, AOT ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ์ž‘๋˜์—ˆ๋‹ค.

์•ž์—์„œ ์‚ดํŽด๋ณธ ๋ฐ”์™€ ๊ฐ™์ด, JIT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ”„๋กœ๊ทธ๋žจ ์ตœ์ดˆ ์‹คํ–‰์‹œ๋งˆ๋‹ค ์ฝ”๋“œ๋ฅผ ๋ณ€ํ™˜ํ•œ๋‹ค. ๋ฐ˜๋ฉด, AOT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ”„๋กœ๊ทธ๋žจ ์ตœ์ดˆ ์‹คํ–‰์‹œ๊ฐ€ ์•„๋‹Œ, ๊ทธ ์ด์ „์—(์ฃผ๋กœ ์„ค์น˜์‹œ์—) ํ•œ๋ฒˆ์— ์ „์ฒด๋ฅผ ๋ณ€ํ™˜ํ•ด ๋‘๊ณ  ์ €์žฅํ•œ ๋’ค, ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์‹œ ๋งˆ๋‹ค ๋ณ€ํ™˜๋œ ์ฝ”๋“œ๋ฅผ ์ฝ์–ด๋“ค์ด๊ฒŒ ๋œ๋‹ค.

๋น„ํ–‰ ๋งค๋‰ด์–ผ์„ ๊ฐ€์ง€๊ณ  ๋น„์œ ๋ฅผ ํ•ด ๋ณด์ž๋ฉด, ๊ธฐ์กด์˜ ์ปดํŒŒ์ผ ์–ธ์–ด๋Š” ๊ฐ๊ตญ์˜ ์–ธ์–ด๋กœ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ธ์‡„๋˜์–ด ๋‚˜์˜ค๋Š” ๋งค๋‰ด์–ผ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ž๋ฐ” ์–ธ์–ด์˜ ๊ฒฝ์šฐ, ์• ์ดˆ๋ถ€ํ„ฐ ๋ฐฐ์šฐ๊ธฐ ์‰ฌ์šด ์–ธ์–ด๋กœ ์˜๋„๋˜์–ด ๋งŒ๋“ค์–ด์ง„ ์—์ŠคํŽ˜๋ž€ํ† ์–ด, ํ˜น์€ ํ˜„์‹ค์ ์œผ๋กœ๋Š” ์„ธ๊ณ„ ๊ณต์šฉ์–ด ์—ญํ• ์„ ํ•˜๋Š” ์˜์–ด ์ •๋„์˜ ์œ„์น˜๋ฅผ ๊ฐ–๋Š”๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค.

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

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

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

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

3.4. ์™œ ์ด๋Ÿฐ ๊ตฌ์กฐ๋ฅผ ์“ฐ๊ณ  ์žˆ์—ˆ๋‚˜?[ํŽธ์ง‘]

์ž๋ฐ”์˜ ์ฒ ํ•™์€ ํ•˜๋“œ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ARM ํ”„๋กœ์„ธ์„œ์—์„œ ๋™์ž‘ํ•˜๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ์€ ๋‹น์—ฐํžˆ x86 ํ”„๋กœ์„ธ์„œ ํ™˜๊ฒฝ์—์„œ ๋™์ž‘ํ•˜์ง€ ์•Š์•„ ์ฝ”๋“œ๋ฅผ ์žฌ๊ตฌ์ถ•ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•˜์ง€๋งŒ[6], ์ž๋ฐ” ์•ฑ์ด๋ผ๋ฉด ์ด์•ผ๊ธฐ๊ฐ€ ๋‹ค๋ฅด๋‹ค. ์•ฑ๊ณผ ํ•˜๋“œ์›จ์–ด ์‚ฌ์ด์— ์ค‘๊ฐ„ ์ฝ”๋“œ ๋ฐ ๊ฐ€์ƒ ๋จธ์‹ (VM)[7]์ด ๋ผ์–ด๋“ค๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋“œ์›จ์–ด ํ”Œ๋žซํผ๊ณผ ๋ฌด๊ด€ํ•˜๊ฒŒ ๊ตฌ๋™์ด ๊ฐ€๋Šฅํ•˜๋‹ค.[8] ๊ตฌ๊ธ€์ด ์•ˆ๋“œ๋กœ์ด๋“œ๋ฅผ ๋งŒ๋“ค ๋•Œ ์ฃผ๋ชฉํ•œ ๊ฒƒ์ด ์ด ๋ถ€๋ถ„์ด์—ˆ๋‹ค. ์ง€๊ธˆ์ด์•ผ ARM์ด ์‹œ์žฅ์„ ์žฅ์•…ํ•˜๊ธฐ๋Š” ํ–ˆ์ง€๋งŒ ๊ทธ ์ด์ „์—๋Š” MIPS๋„ ์–ด๋А ์ •๋„ ์‹œ์žฅ ์ง€๋ถ„์ด ์žˆ๋Š” ์ƒํ™ฉ์ด์—ˆ๊ณ  ์˜ˆ๋‚˜ ์ง€๊ธˆ์ด๋‚˜ ๋ฐ์Šคํฌํƒ‘์— ์“ฐ์ด๋Š” x86(AMD64) ์‹œ์žฅ์€ ๋ณ€ํ•จ์—†์ด ๊ฐ•๋ ฅํ•˜๋ฏ€๋กœ ์ž˜๋งŒ ํ•˜๋ฉด ๋ฐ์Šคํฌํƒ‘ ์‹œ์žฅ๊นŒ์ง€๋„ ๋…ธ๋ฆด ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ์ง€๊ธˆ๋„ (๋น„๋ก ๊ตฌ๊ธ€์ด ์ง์ ‘ ๋‚˜์„œ์„œ ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ) Android-x86 ํ”„๋กœ์ ํŠธ๊ฐ€ ์–ด๋А์ •๋„ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋Š” ๊ฒƒ์—์„œ ๊ทธ ๊ฐ€๋Šฅ์„ฑ์„ ์—ฟ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฐ ์ด์œ ๋กœ ์ž๋ฐ”๋ฅผ ์„ ํƒํ•œ ๋’ค์—, ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ๊ทธ ๊ตฌ์กฐ๋ฅผ ์กฐ๊ธˆ์ด๋ผ๋„ ํšจ์œจ์ ์œผ๋กœ ์จ๋จน์„ ์ˆ˜ ์žˆ์„๊นŒ ๊ณ ์‹ฌํ•ด ์˜จ ๊ฒฐ๊ณผ๋ฌผ์ด JIT ์ปดํŒŒ์ผ์ด๊ณ  ๋˜ AOT ์ปดํŒŒ์ผ์ธ ๊ฒƒ์ด๋‹ค.

๋‹ค๋ฅธ ํฐ ์ด์œ ๋Š” ์ผ๋‹จ ์ž๋ฐ”๊ฐ€ ๋ฐฐ์šฐ๊ธฐ ์‰ฝ๊ณ , ์ƒ์‚ฐ์„ฑ์ด ๋†’์œผ๋ฉฐ, ์ด๋ฏธ ์ž๋ฐ” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฐจ๊ณ  ๋„˜์น˜๋Š” ๋ฐ๋‹ค๊ฐ€, ์‚ฌ์šฉ์ฒ˜๋„ ๊ต‰์žฅํžˆ ๋„“๊ธฐ ๋•Œ๋ฌธ์ด๋ผ๋Š” ๊ฒƒ๋„ ์žˆ๋‹ค. ์ƒ๋Œ€์ ์œผ๋กœ ํ›„๋ฐœ์ฃผ์ž์˜€๋˜ ์•ˆ๋“œ๋กœ์ด๋“œ๊ฐ€ ์•ฑ ์ƒํƒœ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜๋‹จ์œผ๋กœ์จ ์ž๋ฐ”๋ฅผ ์„ ํƒํ–ˆ๋‹ค๋Š” ๊ฒƒ.

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

3.5. ์„ฑ๋Šฅ ๊ฐœ์„ [ํŽธ์ง‘]

AOT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ ์šฉ๋œ๋‹ค๋ฉด ๋‹น์—ฐํžˆ ์••๋„์ ์ธ ์†๋„ ๊ฐœ์„ ์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ƒˆ๋กœ์šด ํ”Œ๋žซํผ์œผ๋กœ์จ์˜ ์•ˆ์ •์„ฑ๋งŒ ๋ณด์žฅ๋œ๋‹ค๋ฉด ์•ฑ์ด ๋™์ž‘ํ•˜๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ ์ž์ฒด๊ฐ€ ๋ฐœ์ ํ™” ์†Œ๋ฆฌ๋ฅผ ๋“ค์„ ์ผ์€ ์‚ฌ์‹ค์ƒ ์—†๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.๋ฌผ๋ก  ์•ฑ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ—ˆ์ ‘์ด๋ฉด ์–„์งค์—†์ง€๋งŒ ๊ทธ๊ฑด ์–ด๋А ํ”Œ๋žซํผ์ด๋‚˜ ๋งˆ์ฐฌ๊ฐ€์ง€๊ณ .

์•ˆ๋“œ๋กœ์ด๋“œ 4.4 ํ‚ท์บฃ์ด ์‹คํ–‰ ์ค‘์ธ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ธฐ๊ธฐ์—์„œ ๋Ÿฐํƒ€์ž„์„ ART๋กœ ์„ค์ •ํ•ด ๋†“์œผ๋ฉด, ์•ฑ์ด ์„ค์น˜ ๋  ๋•Œ ์•ฑ์— ๋“ค์–ด ์žˆ๋Š” ์ค‘๊ฐ„ ์–ธ์–ด๋ฅผ ๋ชจ์กฐ๋ฆฌ ๋ฒˆ์—ญ์„ ๋ฏธ๋ฆฌ ํ•ด ๋†“๋Š”๋‹ค.[9] ๊ทธ ๋•๋ถ„์— ๊ธฐ์กด์˜ Java ๊ธฐ๋ฐ˜ ์•ฑ ํ”Œ๋žซํผ์œผ๋กœ์จ์˜ ๋ฌธ์ œ์ ๋“ค์€ ๋ชจ๋‘ ์‚ฌ๋ผ์ง€๊ณ , ๋„ค์ดํ‹ฐ๋ธŒ ์–ธ์–ด์™€ ๋™๊ธ‰์˜ ์„ฑ๋Šฅ์„ ์ฒด๊ฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

3.6. ๋‹จ์ [ํŽธ์ง‘]

AOT ์ปดํŒŒ์ผ๋Ÿฌ๋„ ๋‹จ์ ์€ ์žˆ๋‹ค. ์•ฑ์„ ์„ค์น˜ํ•˜๋ฉด ๊ณต๊ฐ„์„ 1.5๋ฐฐ์—์„œ 2๋ฐฐ ๊ฐ€๋Ÿ‰์„ ๋” ๋งŽ์ด ์ฐจ์ง€ํ•˜๊ณ , ์„ค์น˜ ์†๋„๊ฐ€ ๋‹ฌ๋น…VM๋ณด๋‹ค ๋” ๋А๋ฆฌ๋‹ค๋Š” ๊ฒƒ. ์ด๋Š” JIT ์—†๋Š” ์ดˆ์ฐฝ๊ธฐ ๋‹ฌ๋น… ๋จธ์‹ ์€ ๋ชจ๋“  ๋ช…๋ น์–ด[10]๋ฅผ ์‹คํ–‰ ์‹œ๋งˆ๋‹ค ํ•œ์ค„ํ•œ์ค„ ์ธํ„ฐํ”„๋ฆฌํŠธํ•˜๊ณ , JIT๋Š” ํ•„์š”ํ•œ ๋ถ€๋ถ„์— ํ•œํ•ด ์‹คํ–‰ ์‹œ๋งˆ๋‹ค ์ธํ„ฐํ”„๋ฆฌํŠธํ•˜๋Š” ๋ฐ˜๋ฉด์— ART์˜ AOT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ฒ˜์Œ ์ธ์Šคํ†จํ•  ๋•Œ ํ•„์š”ํ•œ ์ปดํŒŒ์ผ ์ž‘์—…์„ ๋‹ค ํ•ด๋†“๊ธฐ ๋•Œ๋ฌธ์— ์ƒ๊ธฐ๋Š” ๊ทผ๋ณธ์ ์ธ ํ•œ๊ณ„[11]์ด๋‹ค. ๋˜ํ•œ ํ‚ท์บฃ๊นŒ์ง€์˜ ์•ฑ์€ ๋Ÿฐํƒ€์ž„์„ ๋ชจ๋‘ ๋‹ฌ๋น…์— ์ดˆ์ ์„ ์žก์•„ ๊ฐœ๋ฐœํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ART ํ™˜๊ฒฝ์—์„œ๋Š” ์•ˆ ๋Œ์•„๊ฐ€๋Š”(์ฆ‰ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”) ์•ฑ๋“ค๋„ ์กด์žฌํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ํ‚ท์บฃ~๋กค๋ฆฌํŒ ์ดˆ๊ธฐ(5.0) ๊ธฐ์ค€์œผ๋กœ ART๋Š” ์•„์ง ์ ์šฉ ์ดˆ๊ธฐ ๋‹จ๊ณ„์ธ์ง€๋ผ ์‚ฌ์šฉ์ž๋„ ๊ตฌ๊ธ€๋„ ๋ฐํ˜€๋‚ด์ง€ ๋ชปํ•œ ์ž ์žฌ์ ์ธ ๋ฌธ์ œ๋“ค์ด ์‚ฐ์žฌํ•ด ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.[12] ๋‹ค๋งŒ 2017๋…„ ์‹œ์ ์€ ์ด๋ฏธ 5.1.1์„ ๋„˜์–ด ๋งˆ์‹œ๋ฉœ๋กœ์™€ ๋ˆ„๊ฐ€, ์˜ค๋ ˆ์˜ค, ํŒŒ์ด๋ฅผ ํ–ฅํ•ด ๊ฐ€๊ณ  ์žˆ๋Š” ๋งŒํผ ์ด๋Ÿฌํ•œ ๋ฏธ๊ฒ€์ฆ์˜ ๋ฌธ์ œ๋Š” ์ดˆ๊ธฐ์— ๋น„ํ•ด ์ ์–ด์กŒ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

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

๊ทธ๋Ÿฐ๋ฐ ์šฉ๋Ÿ‰๋ฌธ์ œ์•ผ ๋ง๋กœ ์ง„์งœ ํ•˜๋“œ์›จ์–ด ๋นจ๋กœ ์ปค๋ฒ„๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋ถ€๋ถ„์ด๋ผ ํฌ๊ฒŒ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€๋Š” ์•Š๋Š” ๋“ฏ ํ•˜๋‹ค. ์š”์ƒŒ 64GB ๋‚ด์žฅ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ธฐ๋ณธ์‚ฌ์–‘ ์ทจ๊ธ‰ ๋ฐ›์œผ๋‹ˆ(...)

๊ฒŒ๋‹ค๊ฐ€ ์›๋ž˜๋ถ€ํ„ฐ ๊ฐ™์€ ์–ดํ”Œ์ด๋ผ๋ฉด IOS ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋‹ฌ๋น… ๋Ÿฐํƒ€์ž„ ์‹œ์ ˆ์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๋ณด๋‹ค ์šฉ๋Ÿ‰์ด ํฌ๊ธฐ๋„ ํ–ˆ๊ณ . ๊ณผ๊ฑฐ์˜ ์•ˆ๋“œ๋กœ์ด๋“œ ์–ดํ”Œ๋ณด๋‹ค์•ผ ์šฉ๋Ÿ‰์ด ์ปค์ง€๊ธด ํ–ˆ์ง€๋งŒ, ios๋ž‘ ๋น„๊ตํ•˜๋ฉด ๊ทธ๊ฒŒ ๊ทธ๊ฑฐ๋‹ค.

๋˜ํ•œ, ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž์ฒด ์šฉ๋Ÿ‰์€ ๋‹ฌ๋น… ๋Ÿฐํƒ€์ž„ ์‹œ์ ˆ์ด ART ๋Ÿฐํƒ€์ž„๋ณด๋‹ค ์ ๊ธด ํ–ˆ์ง€๋งŒ, ์ด๊ฑด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž์ฒด ์šฉ๋Ÿ‰์ด๊ณ , ์“ฐ๋ฉด ์“ธ์ˆ˜๋ก ์Œ“์ด๋Š” Dalvik-Cache์™€ Cache ์šฉ๋Ÿ‰์„ ๊ฐ์•ˆํ•˜๋ฉด ๊ฒฐ๊ตญ ๋„์ฐ๊ฐœ์ฐ์ด ๋œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด JIT์ด ์ฝ”๋“œ๋ฅผ ์บ์‹ฑํ•  ๋•Œ ์ผ๋‹จ์€ ๋ฉ”๋ชจ๋ฆฌ์—๋‹ค ์˜ฌ๋ ค ์“ฐ์ง€๋งŒ ๊ทธ ์ค‘ ์ผ๋ถ€๋Š” ์ €์žฅ๊ณต๊ฐ„์—๋„ ์บ์‹ฑํ•˜๊ธฐ ๋•Œ๋ฌธ. ์ด ๋•Œ๋ฌธ์— ์ผ๋ฐ˜ Cache๋Š” ์„ค์ •์—์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, Dalvik-Cache๋Š” ๋ฃจํŒ…ํ•˜์ง€ ์•Š๋Š” ์ด์ƒ ์†๋Œˆ ์ˆ˜๋„ ์—†๋Š” ๋ถ€๋ถ„์ด๋‹ค.

3.6.1. ์ƒ์šฉ ์•ฑ์˜ ์†๋„๋Š” ์–ผ๋งˆ๋‚˜ ๊ฐœ์„ ๋  ๊ฒƒ์ธ๊ฐ€?[ํŽธ์ง‘]

ART ์ ์šฉ ์ด์ „์—๋„ ์ฝ”๋“œ ๋ณด์•ˆ์ด๋‚˜ ์„ฑ๋Šฅ ๋ณด์žฅ์ด ๋งค์šฐ ์ค‘์š”ํ•œ ์•ฑ ๊ฐœ๋ฐœ์€ NDK๋ฅผ ์ด์šฉํ•œ C/C++ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ ธ ์™”๋‹ค. ์ƒ์šฉ ์•ฑ ๋‚ด๋ถ€์—๋Š” ์•ฑ์— ๋”ฐ๋ผ์„œ ์–ด๋А ์ •๋„ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๊ธฐ๋„ ํ•˜๋‹ค๋Š” ๊ฒƒ. ์ตœ์ ํ™”๊ฐ€ ๋  ๋งŒํผ ๋˜์–ด ์žˆ๋Š” ์ด๋Ÿฌํ•œ ์•ฑ๋“ค์— ๋Œ€ํ•ด์„œ๋Š” ์œ ์˜๋ฏธํ•œ ์„ฑ๋Šฅ ๊ฐœ์„ ์ด ์ด๋ฃจ์–ด์ง€์ง€ ๋ชปํ•  ๊ฐ€๋Šฅ์„ฑ ์—ญ์‹œ ์กด์žฌํ•œ๋‹ค.

3.7. ์˜คํ•ด[ํŽธ์ง‘]

์ดˆ๊ธฐ์— ๋ฐฐํ„ฐ๋ฆฌ ์‹ค์‚ฌ์šฉ ์‹œ๊ฐ„์ด ART๊ฐ€ ๋‹ฌ๋น…๋ณด๋‹ค ๋ถˆ๋ฆฌํ•˜๋‹ค๋Š” ์˜คํ•ด๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด๋Ÿฐ ์˜คํ•ด๋ฅผ ๋ฐ›๊ฒŒ ๋œ ์›์ธ์€ ART๊ฐ€ ์ฒ˜์Œ ๋„์ž… ๋œ ํ‚ท์บฃ์ด๋‚˜ ๋กค๋ฆฌํŒ์—์„œ ART๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์˜ ๋ฐฐํ„ฐ๋ฆฌ ํƒ€์ž„์ด ์งง์•˜๊ธฐ ๋•Œ๋ฌธ์œผ๋กœ ๋ณด์ธ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ๋‹ฌ๋น…์ด ์ข€ ๋” ๊ธด ์—ญ์‚ฌ๋ฅผ ๊ฐ€์ ธ์„œ ๋” ์•ˆ์ •ํ™”๊ฐ€ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ผ ๋ฟ์ด์ง€ ART์˜ ๊ตฌ์กฐ ์ž์ฒด์— ๊ทผ๋ณธ์ ์ธ ์›์ธ์ด ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋กค๋ฆฌํŒ์— ๋น„ํ•ด ๋งˆ์‹œ๋ฉœ๋กœ์šฐ์—์„œ ๋ฐฐํ„ฐ๋ฆฌ ์ˆ˜๋ช…์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋˜์—ˆ๋‹ค. [13]

4. ART์™€ ๊ฐ€์ƒ๋จธ์‹ [ํŽธ์ง‘]

ART ๋˜ํ•œ ๋‹ฌ๋น…๊ณผ ๊ฐ™์€ ๊ฐ€์ƒ๋จธ์‹ ์˜ ์ผ์ข…์ด๋‹ค. ๊ธฐ์กด ์•ˆ๋“œ๋กœ์ด๋“œ๋Š” DEX ํŒŒ์ผ์„ Dalvik ๊ฐ€์ƒ๋จธ์‹  ์œ„์— ์˜ฌ๋ ค๋‘๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ปดํŒŒ์ผํ•˜๋Š” ๋ฐฉ์‹์ด์—ˆ๋‹ค. ART๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” DEX ํŒŒ์ผ์„ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผํ•˜์—ฌ OAT ํŒŒ์ผ์— ์ €์žฅํ•ด๋‘๊ณ  ์‹คํ–‰ ๋Œ๋ฆฌ๋Š” ๊ฒƒ์œผ๋กœ ๋ณ€ํ–ˆ์„ ๋ฟ์ด๋‹ค. ๊ธฐ์กด์˜ DEX ํŒŒ์ผ์„ dex2oat ๋ผ๋Š” ๋ณ€ํ™˜๊ธฐ๋ฅผ ์ด์šฉํ•ด์„œ ์ƒ์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•œ๋‹ค.

OAT ํŒŒ์ผ์€ DEX๋ฅผ ์ปดํŒŒ์ผํ•œ native machine code๋ฅผ ๋‹ด๊ณ  ์žˆ์œผ๋ฉฐ, ๊ฐ€์ƒ๋จธ์‹ ์„ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์‹คํ–‰๋œ๋‹ค. ํ•˜์ง€๋งŒ ART๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•ด๋„ Dalvik์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๊ณผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฌผ์„ ์ œ๊ณตํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, OAT์— ์ €์žฅ๋œ native machine code์—๋Š” ๊ฐ€์ƒ๋จธ์‹ ์˜ ์ƒํƒœ๋ฅผ ํ‰๋‚ด๋‚ด๊ธฐ ์œ„ํ•œ ๋ถ€๊ฐ€์ ์ธ ์ฝ”๋“œ๋“ค์ด ์ž”๋œฉ ๋“ค์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค. (๋””๋ฒ„๊น…์„ ์œ„ํ•ด ํ•„์š”ํ•˜๋‹ค. ๋ฌผ๋ก  JIT compiler๊ฐ€ ๋ฑ‰์–ด๋‚ธ machine code๋„ ๋น„์Šทํ•˜๊ฒŒ ์ƒ๊ฒจ๋จน์—ˆ๋‹ค) ๋‹ค์‹œ ๋งํ•ด์„œ ART๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์•ฑ์ด ๊ฐ€์ƒ๋จธ์‹  ์œ„์—์„œ ์ž‘๋™ํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ๊ฐ€์ƒ๋จธ์‹ ์œผ๋กœ๋ถ€ํ„ฐ ์™„์ „ํžˆ ์ž์œ ๋กญ์ง€๋„ ์•Š๋‹ค.

5. Xposed ํ”„๋ ˆ์ž„์›Œํฌ์™€์˜ ํ˜ธํ™˜์„ฑ[ํŽธ์ง‘]

Xposed๋Š” ์ƒ๋‹นํ•œ ๊ธฐ๊ฐ„๋™์•ˆ ART๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์•„ ART ์ƒํƒœ์—์„œ ์„ค์น˜๋ฅผ ์‹œ๋„ํ•  ๊ฒฝ์šฐ ๊ฐ•์ œ๋กœ ๋‹ฌ๋น…์œผ๋กœ ์ „ํ™˜ํ•ด๋ฒ„๋ ธ๋‹ค. ํ‚ท์บฃ ๋•Œ์˜ CyanogenMod์—์„œ๋Š” ART๋ฅผ ์„ ํƒํ•ด๋„ ART๋กœ ๋ฐ”๋€Œ์ง€ ์•Š๊ณ  ๋‹ฌ๋น…์œผ๋กœ ๊ณ„์† ์œ ์ง€๋˜๋Š” ์˜ค๋ฅ˜๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ˜„์ƒ์€ ๋Ÿฐํƒ€์ž„์„ ๋‹ฌ๋น…์œผ๋กœ ์„ค์ •ํ•œ ์ƒํƒœ์—์„œ Xposed ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์„ค์น˜ํ•ด ๋†“๊ณ , ๊ทธ ๋‹ค์Œ ๋Ÿฐํƒ€์ž„์„ ๋‹ค์‹œ ART๋กœ ์ „ํ™˜ํ•  ๋•Œ๋‚˜, 2013๋…„ 11์›”๋ถ€ํ„ฐ 2014๋…„ 1์›” ์‚ฌ์ด์— ๋‚˜์˜จ ์ปค์Šคํ…€๋กฌ(CM11 ๋‚˜์ดํ‹€๋ฆฌ ํฌํ•จ)์ด๋‚˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž์ฒด์ ์œผ๋กœ ART๋ฅผ ์ œ๊ฑฐํ•œ(!) ์ปค์Šคํ…€๋กฌ์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ์— ๋ฐœ์ƒํ–ˆ๋‹ค.[14]

๊ทธ๋ฆฌ๊ณ  ์•ˆ๋“œ๋กœ์ด๋“œ ๋กค๋ฆฌํŒ ๋Ÿฐ์นญ ์ดํ›„์—๋„ Xposed ๊ฐœ๋ฐœํŒ€์€ ๊ฐ๊ฐ๋ฌด์†Œ์‹์ด์–ด์„œ ์‚ฌ์šฉ์ž๋“ค์˜ ์• ๋ฅผ ํƒœ์› ์œผ๋‚˜, ๋ช‡ ๊ฐœ์›” ์ง€๋‚œ ๋’ค ART ๋ฐ ์•ˆ๋“œ๋กœ์ด๋“œ 5.0 ๋กค๋ฆฌํŒ์„ ์œ„ํ•œ Xposed๋ฅผ ๊ณต๊ฐœํ–ˆ๋‹ค. ๊ทธ ๋’ค ์–ด๋–ค ์œ ์ €๊ฐ€ ๋น„๊ณต์‹์œผ๋กœ ํฌํŒ…ํ•œ ์•ˆ๋“œ๋กœ์ด๋“œ 5.1์šฉ Xposed๊ฐ€ ๊ณต๊ฐœ๋˜์—ˆ๊ณ , ์ด์œฝ๊ณ  8์›” 31์ผ ๊ณต์‹์ ์œผ๋กœ ์•ˆ๋“œ๋กœ์ด๋“œ 5.1์„ ์ง€์›ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.[15] ์‹œ๊ฐ„์ด ํ˜๋Ÿฌ ์•ˆ๋“œ๋กœ์ด๋“œ 6.0 ๋งˆ์‰ฌ๋ฉœ๋กœ์šฐ๋„ ์–ด๋ ต์ž–๊ฒŒ ์ง€์›ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

7.0 ๋ˆ„๊ฐ€์—์„œ๋Š” ART๊ฐ€ AOT์™€ JIT๋ฅผ ํ•จ๊ป˜ ํƒ‘์žฌํ•˜๊ณ  '์ ์ ˆํžˆ' ์‚ฌ์šฉํ•˜๊ฒŒ ํ•จ์— ๋”ฐ๋ผ ๊ฐœ๋ฐœ์ž๋ฅผ ์—ฟ๋จน์ด๋Š” ๋ฐ”๋žŒ์—, 2017๋…„ 5์›” ๊ธฐ์ค€ ์•„์ง ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ •๋ฆฌํ•˜๋ฉด ํ˜„์žฌ ์•ˆ๋“œ๋กœ์ด๋“œ 5.0 ~ 6.0 ์—์„œ๋Š” Xposed ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ Xposed ๋ชจ๋“ˆ์ด ๊ฑฐ์˜ ์™„์ „ํ•˜๊ฒŒ ๋Œ์•„๊ฐ„๋‹ค๊ณ  ๋ณด๋ฉด ๋˜๊ฒ ๋‹ค.

2017๋…„ 10์›” 8์ผ ์ž๋กœ ์•ˆ๋“œ๋กœ์ด๋“œ 7.0 & 7.1 ๋ˆ„๊ฐ€์—์„œ๋„ Xposed ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.๋งํฌ
[1] ํ‚ท์บฃ๊นŒ์ง€๋Š” x86, mips ์•„ํ‚คํ…์ฒ˜๋Š” ์นฉ์…‹ ์ œ์กฐ์‚ฌ๋‚˜ ๊ธฐ๊ธฐ ์ œ์กฐ์‚ฌ์—์„œ ์ž์ฒด์ ์œผ๋กœ ํฌํŒ…ํ–ˆ๋‹ค.
[2] ์ถ”๊ฐ€๋กœ ํฌ๋กฌ OS์—๋„ ์•„์ง ๋ฒ ํƒ€์ด๊ธด ํ•˜์ง€๋งŒ ART๋ฅผ ์ง€์›์€ ๊ฐ€๋Šฅํ•œ ๊ตฌ๋ฌธ์ด ์žˆ๋‹ค. ์ด๊ฑธ๋กœ ์•ˆ๋“œ๋กœ์ด๋“œ-ํฌ๋กฌOS๊ฐ„ ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ ํ˜ธํ™˜์ด ๊ฐ€๋Šฅํ•˜๊ธฐ๋„ ํ•˜๋‹ค.(์žฅ๊ธฐ์ ์œผ๋กœ๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์˜ ํฌ๋กฌ๋ถ/ํฌ๋กฌ๋ฐ•์ŠคํŒ์œผ๋กœ์˜ ํ™•์žฅ์„ ๋…ธ๋ฆฐ ๊ฑฐ๊ธฐ๋„ ํ•˜๋‹ค.) ๊ทธ๋ฆฌ๊ณ  ์ด๊ฑธ ๊ตฌ๊ธ€์—์„œ๋Š” Apps Runtime on Chrome, ์ฆ‰ ARC๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. (๊ทธ๋ž˜๋„ ๊ทผ๋ณธ์ ์œผ๋กœ๋Š” ART์™€ ๊ฑฐ์˜ ๊ฐ™์€ ๋ฐฉ์‹์ธ๋ฐ๋‹ค ์•ˆ๋“œ๋กœ์ด๋“œ-ํฌ๋กฌOS๊ฐ„ ํฌ๋กœ์Šค ์ปดํŒŒ์ผ๋ง์ด ๊ฐ€๋Šฅ.)
[3] ์ด๋Š” Java์— ๋Œ€ํ•œ ๊ถŒ๋ฆฌ๊ฐ€ ์˜ค๋ผํด์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ž์„ธํ•œ ๊ฒƒ์€ ๊ฐ๊ฐ ํ•ญ๋ชฉ ์ฐธ์กฐ.
[4] 4.4 ํ‚ท์บฃ ๋ฒ„์ „์—์„œ๋Š” ๊ฐœ๋ฐœ์ž ์„ค์ • ๋‚ด์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ๋˜์–ด ์žˆ์œผ๋‚˜ ๊ธฐ๋ณธ์€ ์•„๋‹ˆ๋‹ค
[5] UI์—์„œ๋ผ๋“ ๊ฐ€...
[6] ์œˆ๋„RT๋ฅผ ์จ๋ณธ ์œ ์ €๋ผ๋ฉด ๋งค์šฐ ์ž˜ ์•Œ๊ณ  ์žˆ์„ ๊ฒƒ์ด๋‹ค.
[7] ๋‹ค๋งŒ ์ด ๊ฐ€์ƒ๋จธ์‹ ์€ ํ”Œ๋žซํผ ์˜์กด์ ์ด๋‹ค.
[8] ๋ฌผ๋ก  ์ด๋ ‡๊ฒŒ ํ•œ ๋‹จ๊ณ„ ๋ผ์–ด๋“  ๊ฒƒ ๋•Œ๋ฌธ์— ์†๋„๋‚˜ ์ž์›์˜ ํฌ์ƒ์€ ์–ด์ฉ” ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด์ง€๋งŒ
[9] AOT ์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์ง„ํ–‰๋œ๋‹ค. ๋งˆ์น˜ ๋ฆฌ๋ˆ…์Šค์—์„œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ํ†ตํ•ด ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ฐ›์•„ make ํ›„ install ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๋А๋‚Œ์œผ๋กœ ๋ณด๋ฉด ๋œ๋‹ค.
[10] ์ •ํ™•ํžˆ๋Š” ์ž๋ฐ” ๋ฐ”์ดํŠธ์ฝ”๋“œ
[11] ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ์•„์˜ˆ ์—†์•จ ์ˆœ ์—†์œผ๋‹ˆ ์ธ์Šคํ†จ์‹œ์— ๋ชฐ์•„์„œ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์œ„์— ๊ฑฐ๋ก ๋œ ์žฅ์ ๋“ค์„ ์–ป์€ ๊ฒƒ์ด๋‹ค.
[12] ์• ์ดˆ์— ํ‚ท์บฃ์€ ART๊ฐ€ ๊ธฐ๋ณธ๊ฐ’์ธ ๊ฒฝ์šฐ๊ฐ€ ๊ฑฐ์˜ ์—†๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ํ™œ์„ฑํ™” ํ•ด์ค˜์•ผ๋งŒ ํ•˜๋Š”๋ฐ๋‹ค๊ฐ€, ๊ทธ๋‚˜๋งˆ ๊ตฌ๋ฒ„์ „์œผ๋กœ ์ถœ์‹œ๋˜์–ด์„œ ์—…๋ฐ์ดํŠธ๋กœ ํ‚ท์บฃ์„ ์“ฐ๋Š” ๊ธฐ๊ธฐ๋Š” ART ์˜ต์…˜์กฐ์ฐจ ์•„์˜ˆ ์ง€์› ์•ˆ ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค.
[13] ๋งˆ์‹œ๋ฉœ๋กœ์šฐ์—์„œ๋Š” ART์ตœ์ ํ™” ๋ฟ๋งŒ์•„๋‹ˆ๋ผ Doze๋ชจ๋“œ ๊ฐ™์ด ๋‹ค๋ฅธ ๋ถ€๋ถ„๋„ ์ตœ์ ํ™”๋‚˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ณ€๊ฒฝ์ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ํฌ๊ฒŒ ํ–ฅ์ƒ๋๋‹ค.
[14] 2013๋…„ 11์›”๋ถ€ํ„ฐ 2014๋…„ 1์›”์€ ์•ˆ๋“œ๋กœ์ด๋“œ ํ‚ท์บฃ๊ณผ ART ๋Ÿฐํƒ€์ž„์ด ์ƒˆ๋กœ์ด ์ถœ์‹œ๋œ ์ง€ ์–ผ๋งˆ ์ง€๋‚˜์ง€ ์•Š์€ ์‹œ๊ธฐ๋กœ, ART์— ๋Œ€ํ•œ ๋Œ€์‘ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋Šฆ์–ด ๊ทธ ์‹œ๊ธฐ์— ๋‚˜์™”๋˜ CM11์„ ํฌํ•จํ•œ ํ‚ท์บฃ ์ปค์Šคํ…€๋กฌ๋“ค์€ ๋Œ€์ฒด์ ์œผ๋กœ ART๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์•˜์œผ๋‚˜ 2014๋…„ 1์›” ์ดํ›„ ๋ชจ๋‘ ์ง€์›ํ•œ๋‹ค. ๋‹จ, ์š”์ฆ˜ ๋‚˜์˜ค๋Š” ํ‚ท์บฃ ์ปค์Šคํ…€๋กฌ๋“ค ์ค‘์—์„œ๋„ ART๋Š” ์‚ญ์ œํ•˜๊ณ  ์˜ค๋กœ์ง€ ๋‹ฌ๋น…๋งŒ ๋Ÿฐํƒ€์ž„์œผ๋กœ ๋Œ๋ฆฌ๋Š” ์ปค์Šคํ…€๋กฌ๋“ค๋„ ์กด์žฌํ•œ๋‹ค. ๋‹ฌ๋น…์„ฑ์• ์ž? ์•„๋ฌด๋ž˜๋„ ๋‹ฌ๋น…์„ ๊ณ„์† ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์–ดํ•˜๋Š” ์œ ์ €๋“ค์„ ์œ„ํ•ด์„œ ์ผ๋ถ€๋Ÿฌ ART๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ผ๋ถ€๋Ÿฌ ๋‹ฌ๋น… ์ตœ์ ํ™”์— ์ดˆ์ ์„ ๋งž์ถ˜ ๋“ฏ. ๊ฐ ์ปค์Šคํ…€ ๋กฌ๋งˆ๋‹ค ART ์ œ๊ฑฐ ์—ฌ๋ถ€๋Š” ๊ฐœ๋ฐœ์ž์˜ xda ํฌ๋Ÿผ์ด๋‚˜ ๊ฐœ์ธ ํ™ˆํŽ˜์ด์ง€ ๋‚ด์˜ ์ฒด์ธ์ง€ ๋กœ๊ทธ ๋“ฑ์— ์žˆ์œผ๋‹ˆ ART๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ์œ„ํ‚ค๋Ÿฌ๋Š” ๋ฐ˜๋“œ์‹œ ํ™•์ธํ•  ๊ฒƒ. ์•ˆ ๊ทธ๋Ÿฌ๋ฉด ๊ท€์ฐฎ๊ฒŒ์‹œ๋ฆฌ ๋กฌ ๋‹ค์‹œ ๋ฐ€์–ด์•ผ ํ•œ๋‹ค(...).
[15] ํ•˜์ง€๋งŒ ์ด Xposed๋Š” AOSP ๊ณ„์—ด ํŽŒ์›จ์–ด๋งŒ ์ง€์›ํ•˜๊ณ  ์ œ์กฐ์‚ฌ ์ปค์Šคํ…€ ํŽŒ์›จ์–ด๋Š” ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์‚ผ์„ฑ ๊ฐค๋Ÿญ์‹œ ๋“ฑ์—์„œ ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด ์‚ผ์„ฑ ๋กค๋ฆฌํŒ์šฉ Xposed๋ฅผ ์ฐพ์•„ ๋ณด์ž. ๊ตญ๋‚ด์˜ ์–ด๋–ค ๊ฐœ๋ฐœ์ž๊ฐ€ ํฌํŒ…ํ•˜์˜€๋‹ค.