์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
ART์์ ๋์ด์ด
Android Runtime
1. ๊ฐ์[ํธ์ง]
์๋๋ก์ด๋์์ ์ฌ์ฉ๋๋ ๊ธฐ์กด์ ๋ฌ๋น
VM์ ํ๊ณ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด์ ๊ตฌ๊ธ์์ ์๋ก ๊ฐ๋ฐํ ๋ฐํ์(์คํํ๊ฒฝ).
์๋๋ก์ด๋ ๋ฐํ์(Android RunTime)์ ์ค์ฌ์ ART๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
2016๋ ํ๋ฐ๊ธฐ์ ์ถ์๋ ์๋๋ก์ด๋ ๋๊ฐ๋ถํฐ, ART๋ผ๊ณ ํด์ ๋ฌด์กฐ๊ฑด AOT์ธ ๊ฒ์ ์๋๋ฏ๋ก ๊ตฌ๋ถํ์ฌ ์์ ํ ๊ฒ.
์๋๋ก์ด๋ ๋ฐํ์(Android RunTime)์ ์ค์ฌ์ ART๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
2016๋ ํ๋ฐ๊ธฐ์ ์ถ์๋ ์๋๋ก์ด๋ ๋๊ฐ๋ถํฐ, ART๋ผ๊ณ ํด์ ๋ฌด์กฐ๊ฑด AOT์ธ ๊ฒ์ ์๋๋ฏ๋ก ๊ตฌ๋ถํ์ฌ ์์ ํ ๊ฒ.
2. ์ ์ฉ[ํธ์ง]
ํท์บฃ ๋ฒ์ ์์ ์ฒ์์ผ๋ก ์ ๋ณด์๋ค.[1]
์๋๋ก์ด๋ 5.0 ๋กค๋ฆฌํ(Lolipop)๋ถํฐ๋ ๋ฌ๋น VM์ ์์ ํ ํ์งํ๊ณ ART๋ฅผ ์๋ก์ด ๋ฐํ์์ผ๋ก ์์ ํ ๋์ฒดํ๋ค. ๋ํ ์์ ์ค๋ช ํ๋ฏ์ด ART๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ ์ ๋๋ฌธ์ x86, mips ์ํคํ ์ฒ ๋ฐ 64๋นํธ๋ฅผ ๊ณต์์ ์ผ๋ก ์ง์ํ๊ฒ ๋์๋ค.[2]
์๋๋ก์ด๋ 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์ ๋ฐ๋ก ๊ฐ๋ฐํด์ ์๋๋ก์ด๋์ ๋ฃ์๋ค.
์๋๋ก์ด๋๋ 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์ ํ์ ํธํ์ฑ, ํน์ ํธํ ๋ชจ๋๋ฅผ ๋ค ์ ์๋ค. ์ ์์ ๊ฒฝ์ฐ๋ ๋ณ๋ก ์ฑ๊ณตํ์ง ๋ชปํ๊ณ , ํ์์ ๊ฒฝ์ฐ๋ ํํ ์ฌ์ฉ๋๊ธฐ๋ ํ์ง๋ง ์ด๋ฆ์์๋ ๋ณด๋ฏ ๋ฒ์ ์ ๊ณผ ๊ฐ์ ํน์ํ ์ํฉ์์๋ ๊ฐ๋ฅํ๋ฉฐ ์ด์ ๊ฐ์ ์ฉ๋๋ก์ ํ์ฉ์ ๊ธฐ๋ํ๊ธฐ ์ด๋ ต๋ค.
์ด๋ฌํ 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๋ ์๋์ ์ผ๋ก ๋น ๋ฅด๊ณ ์์ ์ ์ด๊ธฐ๋ง ํ์ ๋ฟ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ์ด ์ฌ๋ฌ๊ฐ์ง๋ก ๋์ฌ๊ฐ ๋น ์ ธ์๋ ์ํ์๋ค. ์ฆ ๋ง์ดํฌ๋ก์ํํธ๋ ์๋ฉธํ ๊ฒ์ด๋ ๋ง์ฐฌ๊ฐ์ง์ธ ์ ์ด๋ค. ๊ตฌ๊ธ์ ์ค๋ก์ง ์์กด์ ์ํด ๊ธฐ๋ฅ ๊ฐ๋ฐ์๋ง ๋งค๋ฌ๋ ค์ผ ํ๋ ๊ธด ๊ธฐ๊ฐ์ด ๋๋๊ณ ์ ํ์ ์ ์ธํ ๊ฒฝ์์๊ฐ ๋ชจ๋ ์ฌ๋ผ์ ธ๋ฒ๋ฆฐ ์์ ์ด ๋์ด์์ผ ์ด๋ฌํ ์ฑ๋ฅ ๊ฐ์ ์์ ์ ์ฐฉ์ํ ์ ์์๋ค.
๋ค๋ฅธ ํฐ ์ด์ ๋ ์ผ๋จ ์๋ฐ๊ฐ ๋ฐฐ์ฐ๊ธฐ ์ฝ๊ณ , ์์ฐ์ฑ์ด ๋์ผ๋ฉฐ, ์ด๋ฏธ ์๋ฐ ๊ฐ๋ฐ์๊ฐ ์ฐจ๊ณ ๋์น๋ ๋ฐ๋ค๊ฐ, ์ฌ์ฉ์ฒ๋ ๊ต์ฅํ ๋๊ธฐ ๋๋ฌธ์ด๋ผ๋ ๊ฒ๋ ์๋ค. ์๋์ ์ผ๋ก ํ๋ฐ์ฃผ์์๋ ์๋๋ก์ด๋๊ฐ ์ฑ ์ํ๋ฅผ ์ฝ๊ฒ ๊ตฌ์ถํ ์๋จ์ผ๋ก์จ ์๋ฐ๋ฅผ ์ ํํ๋ค๋ ๊ฒ.
๊ตฌ๊ธ์ ์๋๋ก์ด๋ ์ธ์ ๋น์ ๋ํ๋ฉด ํ ํฐ์น ์ค๋งํธํฐ์ด ์ด๋ ๊ฒ ๋นจ๋ฆฌ ์ผ๋ฐํ ๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์์ธกํ์ง ๋ชปํ๊ณ ๊ทธ ํ๋ฉด ์์์ ๋ฉํฐ๋ฏธ๋์ด ์ฝํ ์ธ ๊ฐ ๊ทธ ์ ๋๋ก ๋น ๋ฅธ ์๋๋ก ๋ณด๊ธ๋ ๊ฒ์ด๋ผ๋ ๊ฒ๋ ์์ธกํ์ง ๋ชปํ๋ค. ์ ํ์ด iPhone์ ์ฒ์ ๋ด๋จ์ ๋์ ์ฌ๊ธฐ์ ํ์ ํ ์ ํ์ด ์ค๋น๋์ด ์๋ ๊ฒฝ์์ฌ๋ ๋จ ํ๊ณณ๋ ์์๋ค. ์ฌ์ง์ด ์ ํ์กฐ์ฐจ ARM ํ๋ก์ธ์๊ฐ ๋ชจ๋ฐ์ผ ์์ฅ์ ๋ ์ ๊ตฌ๋๋ก ํ์ ํด๋ฒ๋ฆด ๊ฑฐ๋ผ๋ ์์์ ํ์ง ๋ชปํ๋ค. iPhone๋ณด๋ค ๋จผ์ ๊ธฐํ๋๊ธฐ ์์ํ ์์ดํจ๋์ ์ฐ์ผ ํ๋ก์ธ์๋ฅผ ์ํด ์ต์ด์ ์ ์ดํ ๊ณณ์ ARM ํ๋ก์ธ์ ๊ฐ๋ฐ์ฌ๋ค์ด ์๋๋ผ x86์ ๋ง๋๋ ์ธํ ์ด์๊ธฐ ๋๋ฌธ์ด๋ค. ๋จ์ง ๊ตฌ๊ธ์ ๊ฒฝ์์ด ๊ฐ๋ฅํ ๋ฒํ ์ ํ์ ๊ฐ์ง๊ณ ์๋ ๋ฏํ ํ๋ณด๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์ํํ๊ณ ์ด์ฐ๋์๋ ์ ํ์ ์ ์ธํ ๋ชจ๋ ์์ฅ ๊ฒฝ์์๋ค ์ค ๊ฐ์ฅ ๋น ๋ฅธ ์๊ฐ ๋ด์ ์๋น์๋ค์ด ์ต์ํ์ ๋ฉ๋์ ํ ์ ์๋ ์ ํ์ ๋ด๋์ ์ ์์๋ค. ๊ทธ๋ฌ๋๊น ํญ๋ฐํ๋ฏ ํฝ์ฐฝํ๋ฉฐ ๊ธ๋ณํ๋ ์ค๋งํธํฐ ์์ฅ ์ด๊ธฐ์ ์ค๋ก์ง ์์กด์ ์ํด ๋ฉํฐ๋ฏธ๋์ด์ฉ์ผ๋ก ๋์์ธ ๋์ง ์์ OS๋ฅผ ๋ง๊ฐ์กฐํ๋ฉฐ ์๊ธฐ์๋ณ์ผ๋ก ์์ ์ฌ๋ ค๋๊ฐ ๊ฒฐ๊ณผ๋ฌผ์ด ์ง๊ธ์ ์๋๋ก์ด๋์ธ ๊ฒ์ด๋ค. ๋ฐ๋ฉด ๋ง์ดํฌ๋ก์ํํธ๋ ์ผ์ฑ ์ด๋์์ ๊ฐ์ ์ ํ์ ๋ง๋ค ์ ์๋, ๋น๋ก ์์ฒญ๋ ํนํ์ ์ง๋ฉดํ๋๋ผ๋ ๋น์ฅ ์ ํ์ ๋ง๋ค์ด๋ผ ์๋ ์์๋ ์๋์ฐ ๋ชจ๋ฐ์ผ์ด ์์์์๋ ๋ถ๊ตฌํ๊ณ iOS์ ํ์ ํ๋ ์์ค์ ์๋์ฐ ํฐ OS๊ฐ 1๋ ํ์ ๋ฐ๋งค๋ ๊ฒ์ด๋ฉฐ ํ์ฌ ํ๋งค ์ค์ธ ๊ธฐ๊ธฐ๋ ์ด๋ฅผ ์ํ ์ด๋ค ์ง์๋ ๋ฐ์ ์ ์๋ค๋ ์ดํด ๋ชปํ ํต๋ณด์ ํจ๊ป ๊ธด ์๊ฐ์ ์นจ๋ฌตํด๋ฒ๋ ธ๋ค. ๊ทธ๋ฆฌ๊ณ ๋น์์ 1๋ ์ด๋ฉด ๊ฐ์ฐ์ด ๋ ๋ฒ์ ๋ฐ๋๊ณ ๋ ๋จ์์ ์ ๋๋ก ๊ฒฉ๋ณ์ด ๊ณ์๋๋ ๋์๋ค. ๊ฑฐ๊ธฐ๋ค ๋ง์ดํฌ๋ก์ํํธ๋ ์๊ณ ํ๋ ์์ ์ ์ ํ์ ๋ด๋์ง๋ ๋ชปํ๊ณ ๋ด๋์ OS๋ ์๋์ ์ผ๋ก ๋น ๋ฅด๊ณ ์์ ์ ์ด๊ธฐ๋ง ํ์ ๋ฟ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ์ด ์ฌ๋ฌ๊ฐ์ง๋ก ๋์ฌ๊ฐ ๋น ์ ธ์๋ ์ํ์๋ค. ์ฆ ๋ง์ดํฌ๋ก์ํํธ๋ ์๋ฉธํ ๊ฒ์ด๋ ๋ง์ฐฌ๊ฐ์ง์ธ ์ ์ด๋ค. ๊ตฌ๊ธ์ ์ค๋ก์ง ์์กด์ ์ํด ๊ธฐ๋ฅ ๊ฐ๋ฐ์๋ง ๋งค๋ฌ๋ ค์ผ ํ๋ ๊ธด ๊ธฐ๊ฐ์ด ๋๋๊ณ ์ ํ์ ์ ์ธํ ๊ฒฝ์์๊ฐ ๋ชจ๋ ์ฌ๋ผ์ ธ๋ฒ๋ฆฐ ์์ ์ด ๋์ด์์ผ ์ด๋ฌํ ์ฑ๋ฅ ๊ฐ์ ์์ ์ ์ฐฉ์ํ ์ ์์๋ค.
3.5. ์ฑ๋ฅ ๊ฐ์ [ํธ์ง]
AOT ์ปดํ์ผ๋ฌ๊ฐ ์ ์ฉ๋๋ค๋ฉด ๋น์ฐํ ์๋์ ์ธ ์๋ ๊ฐ์ ์ ๊ธฐ๋ํ ์ ์์ผ๋ฉฐ, ์๋ก์ด ํ๋ซํผ์ผ๋ก์จ์ ์์ ์ฑ๋ง ๋ณด์ฅ๋๋ค๋ฉด ์ฑ์ด ๋์ํ๋ ์๋๋ก์ด๋ ํ๋ซํผ ์์ฒด๊ฐ ๋ฐ์ ํ ์๋ฆฌ๋ฅผ ๋ค์ ์ผ์ ์ฌ์ค์ ์๊ฒ ๋ ๊ฒ์ด๋ค.๋ฌผ๋ก ์ฑ ๊ฐ๋ฐ์๊ฐ ํ์ ์ด๋ฉด ์์งค์์ง๋ง ๊ทธ๊ฑด ์ด๋ ํ๋ซํผ์ด๋ ๋ง์ฐฌ๊ฐ์ง๊ณ .
์๋๋ก์ด๋ 4.4 ํท์บฃ์ด ์คํ ์ค์ธ ์๋๋ก์ด๋ ๊ธฐ๊ธฐ์์ ๋ฐํ์์ ART๋ก ์ค์ ํด ๋์ผ๋ฉด, ์ฑ์ด ์ค์น ๋ ๋ ์ฑ์ ๋ค์ด ์๋ ์ค๊ฐ ์ธ์ด๋ฅผ ๋ชจ์กฐ๋ฆฌ ๋ฒ์ญ์ ๋ฏธ๋ฆฌ ํด ๋๋๋ค.[9] ๊ทธ ๋๋ถ์ ๊ธฐ์กด์ Java ๊ธฐ๋ฐ ์ฑ ํ๋ซํผ์ผ๋ก์จ์ ๋ฌธ์ ์ ๋ค์ ๋ชจ๋ ์ฌ๋ผ์ง๊ณ , ๋ค์ดํฐ๋ธ ์ธ์ด์ ๋๊ธ์ ์ฑ๋ฅ์ ์ฒด๊ฐํ ์ ์๊ฒ ๋์๋ค.
์๋๋ก์ด๋ 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๋ ๋ฃจํ ํ์ง ์๋ ์ด์ ์๋ ์๋ ์๋ ๋ถ๋ถ์ด๋ค.
์๋๋ก์ด๋ 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๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ฑ์ด ๊ฐ์๋จธ์ ์์์ ์๋ํ์ง๋ ์์ง๋ง ๊ฐ์๋จธ์ ์ผ๋ก๋ถํฐ ์์ ํ ์์ ๋กญ์ง๋ ์๋ค.
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 ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋์๋ค.๋งํฌ
๊ทธ๋ฆฌ๊ณ ์๋๋ก์ด๋ ๋กค๋ฆฌํ ๋ฐ์นญ ์ดํ์๋ 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๋ฅผ ์ฐพ์ ๋ณด์. ๊ตญ๋ด์ ์ด๋ค ๊ฐ๋ฐ์๊ฐ ํฌํ
ํ์๋ค.