V8 ์์ง์ Google์ด ๊ฐ๋ฐํ ์คํ์์ค๋ก ๊ฐ์ฅ ๋์ค์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์
๋๋ค.
C++๋ก ๊ฐ๋ฐํ์๊ณ Node JS ๋ฐํ์ ๋ฐ Chrome ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
์ปดํจํฐ๋ 0๊ณผ 1๋ฐ์ ์ดํดํ์ง ๋ชปํ๋ ๋ฎ์ ์์ค์ ์ธ์ด์
๋๋ค. ํ์ง๋ง ๊ณ ์์ค ์ธ์ด์ธ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ์ดํดํ๊ณ ๋ช
๋ น์ ์ํํ ์ ์์ต๋๋ค. ์ธ๊ฐ์ด ์์ฑํ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ์ปดํจํฐ๊ฐ ์ฝ์ ์ ์๋ ๊ฒ์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ผ๋ จ์ ๊ณผ์ ์ ๊ฑฐ์ณ์ ์ปดํจํฐ์๊ฒ ์ต์ ํ๋ ์ฝ๋๋ก ๋ณํํ์ฌ ์ ๋ฌํ๊ฒ ๋๊ณ , ์ด๋ฌํ ๊ณผ์ ์ผ๋ก ์ธํด์ ์ปดํจํฐ๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ์ดํดํ๊ณ ์ํํ ์ ์๋ ๊ฒ์
๋๋ค.
์ฆ, ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ๋ง์ดํฌ๋กํ๋ก์ธ์๊ฐ ์ดํดํ ์ ์๊ฒ ๊ธฐ๊ณ์ด๋ก ๋ณํํด์ ์คํํ๋ ํ๋ก๊ทธ๋จ ๋๋ ์ธํฐํ๋ฆฌํฐ๋ฅผ ๋งํฉ๋๋ค.
V8์์ง์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์์๋ณด๊ธฐ ์ , ํ๋ก๊ทธ๋๋ฐ์์ ์ฌ์ฉํ๋ ๋ ๊ฐ์ง ๋ฒ์ญ ๋ฐฉ์์ ๋ํด ๋จผ์ ์์๋ด ์๋ค.
๐ฃ ์ธํฐํ๋ฆฌํฐ
์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ์
๋ ฅ๋ฐ์ผ๋ฉด ์ฝ๋๋ฅผ ํ ์ค ํ ์ค ํด์ํ๋ฉด์ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญํ๋ ๋ฐฉ์์
๋๋ค. ์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ ์ปดํ์ผ ๋จ๊ณ๊ฐ ์๊ธฐ ๋๋ฌธ์ย ์คํ ์๋๊ฐ ๋น ๋ฅด๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
๐ฃ ์ปดํ์ผ๋ฌ
์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์
๋ ฅ๋ฐ์ผ๋ฉด ํ์ผ ์ ์ฒด๋ฅผ ์ฝ์ ๋ค, ์ด๋ฅผ ์ปดํ์ผํ์ฌ ๊ธฐ๊ณ์ด๋ก ๋ณํํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๊ธฐ๊ณ์ด(Machin Code)
๋ CPU๋ก ์
๋ ฅ๋์ด ์ฝ๋๊ฐ ์คํ๋ฉ๋๋ค.
์ปดํ์ผ๋ฌ๋ ์์
์ ๋จ์ํ ์ํค๋ ์ฅ์ ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ํน์ ํจ์๋ฅผ 10์ต๋ฒ ๋ฐ๋ณตํด์ผ ํ ๊ฒฝ์ฐ, ์ปดํ์ผ ๊ณผ์ ์์ ํจ์๋ฅผ ๋ฐ๋ณตํ๋ ๊ฒ์ด ์๋๋ผ ํจ์์ ๊ฒฐ๊ณผ๋ฌผ์ ๋ฐ๋ณตํ๋๋ก ์ปดํ์ผํฉ๋๋ค. ์ด์ฒ๋ผ ๋ถํ์ํ ๋์์ ์ ๊ฑฐํ๋ ์ปดํ์ผ๋ฌ์ ๋ฐฉ์์ ์ต์ ํ(Optimization)์ด๋ผ๊ณ ํฉ๋๋ค.
V8์ ์น ๋ธ๋ผ์ฐ์ ๋ด๋ถ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์ํ ์๋์ ๊ฐ์ ์ ๋ชฉํ๋ก ์ฒ์ ๊ณ ์๋์์ต๋๋ค.
์ด์ ์ ์ฌ๋ฌ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์ฌ์ฉ๋๊ณ ์์์ง๋ง ๋ค๋ฅธ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์น ํน์ฑ์ ์ ์ ์ ์ํธ์์ฉ์ ์ํด ์ฆ์์ฑ์ด ์๋ ์ธํฐํ๋ฆฌํฐ ๋ฐฉ์์ ์ฌ์ฉํ๋๋ฐ, ์ด๋ ์ฝ๋๊ฐ ๋ง์์ง์๋ก ์๋๊ฐ ๋๋ ค์ง๋ค๋ ๋จ์ ์ด ์์ต๋๋ค. ์ด ์ ์ ๋ณด์ํด์ ์๋ ํฅ์์ ์ํด v8์์ง์ ์ธํฐํ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ๋ ๋์ JIT(Just In Time) ์ปดํ์ผ๋ฌ๋ฅผ ๊ตฌํํจ์ผ๋ก์จ ์ฝ๋ ์คํ ์์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ๋จธ์ ์ฝ๋๋ก ์ปดํ์ผํฉ๋๋ค.
์ฌ์ง ์ถ์ฒ : https://blog.naver.com/tipsware/221041215416
์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์ปดํจํฐ ์์๋ ๋ง์ดํฌ๋กํ๋ก์ธ์๋ผ๋ ์์ ๊ธฐ๊ณ๊ฐ ์๋๋ฐ, ์ด๊ฒ์ CPU์ ํต์ฌ ๊ธฐ๋ฅ์ ํตํฉํ ์ง์ ํ๋ก(IC)์ ๋๋ค. ํ๋ก๊ทธ๋๋จธ๊ฐ ์ด๋ค ์ฝ๋๋ฅผ ์ง์ ์ปดํจํฐ์๊ฒ ์ผ์ ์ํค๋ ค๋ฉด ๊ฒฐ๊ตญ ์ด ๋ง์ดํฌ๋กํ๋ก์ธ์๊ฐ ํด์ํ ์ ์๋ ์ธ์ด๋ก ์ ๋ฌํด์ผ ํฉ๋๋ค. ๋ง์ดํฌ๋กํ๋ก์ธ์๋ ์ด๊ฒ์ ๋ง๋ ํ์ฌ๋ ๋ฒ์ ์ ๋ฐ๋ผ ๊ฐ์ ๋ค๋ฅธ ์ธ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์ธ์ด๋ค์ ํ๋์จ์ด์ ์ง์ ์ ์ผ๋ก ์ํตํ ์ ์๋ ์ฝ๋๋ค์ด๊ณ ๊ทธ๋์ ๊ธฐ๊ณ์ด, ๋จธ์ ์ฝ๋๋ผ ๋ถ๋ฆฝ๋๋ค. ๊ทธ๋ฌ๋๊น ๊ฒฐ๊ตญ ํ๋ก๊ทธ๋๋จธ๋ค์ ํ๋ก๊ทธ๋๋ฐ ํจ์จ์ ์ํด ์ถ์ํ ์์ค์ด ๋์ ๊ณ ์์ค ์ธ์ด๋ฅผ ์ฌ์ฉํด์ ์ฝ๋ฉ์ ํ์ง๋ง ์ด๋ ๊ฒฐ๊ตญ ๋จธ์ ์ฝ๋๋ก ์ปดํ์ผ๋์ด์ผ๋ง CPU๊ฐ ์ดํดํ๊ณ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ค๋ ๋ง์ ๋๋ค.
JIT ์ปดํ์ผ (just-in-time compilation) ๋๋ ๋์ ๋ฒ์ญ (dynamic translation)์ ํ๋ก๊ทธ๋จ์ ์ค์ ์คํํ๋ ์์ ์ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญํ๋ ์ปดํ์ผ ๊ธฐ๋ฒ์ ๋๋ค. Just In Time Compiler๋ก ํ๋กํ์ผ๋ง์ ํตํด ์ต์ ํ ํ ์ฝ๋๋ฅผ ์ ๋ณํ ํ ํด๋น ์ฝ๋๋ค๋ง ์ปดํ์ผํฉ๋๋ค. ์ด ๊ธฐ๋ฒ์ ํ๋ก๊ทธ๋จ์ ์คํ ์๋๋ฅผ ๋น ๋ฅด๊ฒ ํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
์๋๋ V8์ ์๋๋ฐฉ์์
๋๋ค.
์ฌ์ง ์ถ์ฒ : JSConf EU 2017์์ ๋ฐํํ Franziska Hinkelmann๋์ ์๋ฃ
V8 Engine๋ ์๋ฐ์คํฌ๋ฆฝํธ ์์ค์ฝ๋๋ฅผ ๊ฐ์ ธ์์ย Parser
์๊ฒ ๋ณด๋
๋๋ค.
Parser๋ ๋ฑ๋ง ๋ถ์(Lexical Analysis) ์ด๋ผ๋ ๊ณผ์ ์ ํตํด ์ฝ๋๋ฅผ ํ ํฐ์ผ๋ก ๋ถํดํฉ๋๋ค.
ex) ar a = 5
โ ['var' , 'a' , '=' , '5']
Parser์์ ๋ถํด๋ ํ ํฐ์ ๋ฐํ์ผ๋ก AST tree๋ฅผ ์์ฑํฉ๋๋ค.
AST
์์ ๋์จ ์ฝ๋๊ฐ ์ธํฐํ๋ฆฌํฐ(Ignition
)์๊ฒ ์ ๋ฌ๋ฉ๋๋ค.
๐กvar ํธ์ด์คํ
์ ์ฐธ๊ณ ๋ก ์ด๋จ๊ณ์์ ์ด๋ฃจ์ด์ง๋๋ค.
์ธํฐํ๋ฆฌํฐ์ธ Ignition
์์๋ ์ฝ๋๋ฅผ ๋น ๋ฅด๊ฒ AST๋ฅผ Bytecode
๋ก '์ค๊ฐ ๋ฒ์ญ' ํ๊ณ ย ์คํ์ํต๋๋ค.
Bytecode
๊ณ ์์ค ์ธ์ด๋ก ์์ฑ๋ ์์ค ์ฝ๋๋ฅผ ๊ฐ์๋จธ์ ์ด ํ๊ฒฐ ํธํ๊ฒ ์ดํดํ ์ ์๋๋ก ์ค๊ฐ ์ฝ๋๋ก ํ๋ฒ ์ปดํ์ผ ํ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
CPU๊ฐ ์๋ VM(Virtual Machine, ๊ฐ์๋จธ์ )์์ ์ดํดํ ์ ์๋ ์ฝ๋๋ฅผ ์ํ ์ด์ง ํํ๋ฒ์ ๋๋ค. ์ฆ, ๊ฐ์ ๋จธ์ ์ด ์ดํด ํ ์ ์๋ 0๊ณผ 1๋ก ๊ตฌ์ฑ๋ ์ด์ง ์ฝ๋์ ๋๋ค.
Ignition
์ ๊ฐ๋ฐํ ๋๋ ๋ชจ๋ ์์ค๋ฅผ ํ๋ฒ์ ํด์ํ๋ ์ปดํ์ผ ๋ฐฉ์์ด ์๋ ํ์ค์ฉ ์คํ๋ ๋๋ง๋ค ํด์ํ๋ ์ธํฐํ๋ฆฌํฐ ๋ฐฉ์์ ์ฑํํ์ฌ ์ธ๊ฐ์ง ์ด์ ์ ๊ฐ์ ธ๊ฐ๊ณ ์ ํ์ต๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๊ฐ์
์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์์ ๊ธฐ๊ณ์ด๋ก ์ปดํ์ผ ํ๋ ๊ฒ๋ณด๋ค ๋ฐ์ดํธ ์ฝ๋๋ก ์ปดํ์ผํ๋๊ฒ ๋ ํธํฉ๋๋ค- ํ์ฑ์ ์ค๋ฒํค๋ ๊ฐ์
๋ฐ์ดํธ ์ฝ๋๊ฐ ๊ฐ๊ฒฐํ๊ธฐ ๋๋ฌธ์ ๋ค์ ํ์ฑํ๊ธฐ ํธ๋ฆฌํฉ๋๋ค.- ์ปดํ์ผ ํ์ดํ ๋ผ์ธ์ ๋ณต์ก์ฑ ๊ฐ์
Optimizing
์ด๋ ยDeoptimizing
์ด๋ ๋ฐ์ดํธ ์ฝ๋ ํ๋๋ง ์๊ฐํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ํธํฉ๋๋ค.
์ฝ๋๋ฅผ ์ ํํ์ฌ Bytecode
๋ฅผ ์์ฑ ๋ฐ ์คํํฉ๋๋ค. V8 Engine์ ๋ฐํ์ ๊ณผ์ ์ค Profiler์๊ฒ ์ง์์ ์ธย ํ๋กํ์ผ๋ง(ํจ์๋ ๋ณ์๋ค์ ํธ์ถ ๋น๋์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ์ผ๋ผ๊ณ ์ํต๋๋ค)์ ํตํดย Hot spotย ์ฆ ๋ฐ๋ณต๋์ด ์ฌ์ฉํ๋ ์ฝ๋ ๋ฑ ๊ณผ์ด์ง์ ์ ์ฐพ์ต๋๋ค. Bytecode
๊ฐ ์คํ๋ ๋ Profiler๋ ํ๋กํ์ผ๋ง ๋ฐ์ดํฐ๋ฅผ ์์งํ์ฌ ์ต์ ํ ํ ์ ์๋ ๋ถ๋ถ์ ๊ธฐ๋กํฉ๋๋ค.
์ต์ ํ ๊ฐ๋ฅํ ๋ถ๋ถ์ ์ฐพ์ผ๋ฉด Profiler๋ ์ด๋ฅผ ์ปดํ์ผ๋ฌ์๊ฒ ์ ๋ฌํ๊ณ , ์ปดํ์ผ๋ฌ๋ ์ธํฐํ๋ฆฌํฐ์ ์ํด ์ค์๊ฐ์ผ๋ก ์น์ฌ์ดํธ๊ฐ ๊ตฌ๋๋๋ ๋์ ํ์ํ ๋ถ๋ถ์ ๊ธฐ๊ณ์ด๋ก ๋ณํํ์ฌ ์ต์ ํ๋ฅผ ์งํํฉ๋๋ค.
๊ณผ์ด ์ฝ๋๋ฅผย TurboFan(์ต์ ํ ์ปดํ์ผ๋ฌ)
์ผ๋ก ๋ณด๋ดย ์ต์ ํ ์ปดํ์ผ์ ์งํํฉ๋๋ค.
๐ก ๋ง์ฝ ์ต์ ํ ์ปดํ์ผ์ ์งํํ๋๋ผ๋, ๋ณ์์ ํ์ ์ด ๋ฐ๋๋ค๋ ์ง ๊ฐ์ ๋์ ํ๊ฒฝ์ ๋ณ์์ ๋ฐ๋ผ ๋ค์ดํฐ๋ธ ์ฝ๋๋ฅผ ๋ค์ ๋ฐ์ดํธ ์ฝ๋๋ก
Deoptimizing
ํ๊ธฐ๋ ํฉ๋๋ค.Deoptimizing
๋ ์ฝ๋๋ ์ํฉ์ ๋ฐ๋ผ์ ์ผ๋ง๋ ์ง ๋ค์ ์ต์ ํ ์ปดํ์ผ๋ง๋๊ธฐ๋ ํฉ๋๋ค.
Optimized code
๊ฐ ์คํ์ต์ ํ ์ฝ๋๋ฅผ ์ํํ ์ฐจ๋ก๊ฐ ๋ค๊ฐ์ค๋ฉด, Bytecode ๋์ ์ปดํ์ผ๋ฌ๊ฐ ๋ณํํ ์ต์ ํ๋ ์ฝ๋๊ฐ ๊ทธ ์๋ฆฌ๋ฅผ ๋์ฒดํ์ฌ ์คํ๋ฉ๋๋ค.
์ต์ ํ ๊ธฐ๋ฒ์ผ๋ก๋ย ํ๋ ํด๋์ค(Hidden Class)๋ย ์ธ๋ผ์ธ ์บ์ฑ(Inline Caching)ย ๋ฑ ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ฒ์ ์ฌ์ฉํฉ๋๋ค. ํ๋ ํด๋์ค๋ ๋น์ทํ ๋๋ค๋ผ๋ฆฌ ๋ถ๋ฅํด๋๊ณ ๊ฐ์ ธ๋ค ์ฐ๋ ๊ฒ,ย ์ธ๋ผ์ธ ์บ์ฑ์ ์์ฃผ ์ฌ์ฉ๋๋ ์ฝ๋๊ฐ ๋ง์ฝย hello()
์ ๊ฐ์ ํจ์์ ํธ์ถ๋ถ๋ผ๋ฉด ์ด๊ฑธย function hello () { ... }
์ ๊ฐ์ด ํจ์์ ๋ด์ฉ์ผ๋ก ๋ฐ๊ฟ๋ฒ๋ฆฌ๋ ๊ฒ์
๋๋ค. ๋ง ๊ทธ๋๋กย ์บ์ฑ(Caching)
์
๋๋ค.
https://evan-moon.github.io/2019/06/28/v8-analysis/#v8-์์ง์-์๋์๋ฆฌ๋ฅผ-์ดํด๋ณด์
์์ ํฌ์คํ ๋ด์ฉ์์ ๊ฐ์ ธ์์ต๋๋ค.
์ฌ๊ธฐ์ ์ฌ์ฉ๋๋ ์ฉ์ด๋ค์ด ๊ต์ฅํ ์ฌ๋ฏธ์๋๋ฐ,ย V8
์ ์๋ 8๊ธฐํต ์์ง์ ์ข
๋ฅ๋ฅผ ์๋ฏธํ๋ ๋จ์ด์
๋๋ค. ์ ๋ค์์ค G90์ด๋ ๊ธฐ์ K9๊ฐ์ ์ฐจ์ ๋ค์ด๊ฐ๋ค๊ณ ํ๋ค.
(์ด์ฉ์ง ๊ฒ์ํ๋ฉด ์์ง๋ง ๋์ค๋๋ผโฆ)
๊ทธ๋ผย Ignition
์ ๋ญ๋๋ฉด ์์ง์ ์๋๊ฑธ ๋ ์ฌ์ฉํ๋ย ์ ํ๊ธฐ
์
๋๋ค. ๋ด ์์ค ์ฝ๋๊ฐ ๋ถ๋ฆ๋ถ๋ฆ ์คํ๋๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ค๊ฐ ๋๋ฌด ๋ง์ด ํธ์ถ๋์ ๋ด ์ฝ๋๊ฐ ๋จ๊ฑฐ์์ง๋ฉดย TurboFan
์ผ๋ก ์ต์ ํํด์ ๋๋ฌด ๊ณผ์ด๋์ง ์๊ฒ ์ํ์ฃผ๋ ๊ทธ๋ฐ ๋๋์
๋๋ค. ( ๋ถ๋ช
๋
ธ๋ฆฌ๊ณ ๋ค์ด๋ฐํ๊ฒ๊ฐ๋ค )
V8
ย ๋ถ์ ํฌ์คํ
์์ ์ปดํ์ผ ํ์ดํ๋ผ์ธ์ ์ค๋ช
ํ ๋ ๋น ์ง์ง ์๋ย Full-codegen
๊ณผย Crankshaft
๋ ์ด๋๋ก ๊ฐ๋ ํ๋ฉดโฆ
V8 v5.9๋ถํฐ ์ฒ์์ผ๋ก Ignition๊ณผ TurboFan์ ์๋ฐ์คํฌ๋ฆฝํธ ์คํ์ ์ํด ์ ์ฒด์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ๋ํ V8์ v5.9๋ถํฐ V8์ ์ ์งํฑํด์ค ๊ธฐ์ ์ด์๋ Full-codegen๊ณผ Crankshaft๋ ์๋ก์ด ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ธฐ๋ฅ๊ณผ ์ด๋ฌํ ๊ธฐ๋ฅ๋ค์ด ์๊ตฌํ๋ ์ต์ ํ ๊ธฐ๋ฅ์ ๋ ์ด์ ๋ฐ๋ผ๊ฐ ์ ์๊ธฐ ๋๋ฌธ์ V8์์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด๊ฒ๋ค์ ๊ณง ์์ ํ ์ ๊ฑฐํ ๊ณํ์ด๋ฉฐ, ์ด๋ V8์ด ์์ผ๋ก ํจ์ฌ ๋ ๋จ์ํ๊ณ ์ ์ง ๋ณด์ ๊ฐ๋ฅํ ์ํคํ ์ฒ๋ฅผ ๊ฐ๊ฒ ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
V8 teamย Launching Ignition and TurboFan
V8์ v5.9๋ถํฐ ์ฌ์ฉ๋์ง ์์ต๋๋ค!
V8 ์์ง์ ๋ํด ๊น๊ฒ ์๊ฐํด๋ณธ์ ์์๋๋ฐ, ๊ธฐ์
๊ณผ์ ๋ฅผ ์ค๋นํ๋ฉด์ ๊ณต๋ถํ ์ ์๋ ๊ณ๊ธฐ๊ฐ ๋์์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์คํํด์ฃผ๋ ์์ง์ด๋ค ์ ๋๋ง ์์์ง ์ด ์์ง์ด ๋ค์ ์ด๋ ๊ฒ ๋ง์ ์ผ์ ํ๊ณ ์์ ์ค์ ๋ชฐ๋์ด์..!
๐คฉย ๋ค์ ์ฃผ์ ๋ ๋ธ๋ผ์ฐ์ ๊ตฌ์กฐ์ ๊ดํ ๋ด์ฉ์ธ๋ฐ ์ด๋ฒ์๋ ์ด๋ค ํฅ๋ฏธ๋ก์ด ๋ด์ฉ์ด ๋์ฌ์ง ๊ธฐ๋์ค์
๋๋ค!!
๐ ์ฐธ๊ณ ๋งํฌ
https://velog.io/@hahan/V8-์์ง์ด๋
https://velog.io/@tastestar/V8-์์ง
https://velog.io/@godori/JavaScript-engine-1
https://velog.io/@sapphire317/V8-์์ง-๋ฌด์์ผ๊น
https://engineering.huiseoul.com/์๋ฐ์คํฌ๋ฆฝํธ๋-์ด๋ป๊ฒ-์๋ํ๋๊ฐ-v8-์์ง์-๋ด๋ถ-์ต์ ํ๋-์ฝ๋๋ฅผ-์์ฑ์-์ํ-๋ค์ฏ-๊ฐ์ง-ํ-6c6f9832c1d9
https://velog.io/@cheal3/JavaScript-์๋ฐ์คํฌ๋ฆฝํธ์-์๋-์๋ฆฌ
https://alledy.netlify.app/posts/v8-engine/
https://dkwjdi.tistory.com/194
https://evan-moon.github.io/2019/06/28/v8-analysis/
https://velog.io/@kich555/JIT-Compiler-Chrome-V8-Engine