JavaScript Engine(이하 JSE)인 V8의 Ignition이 Interpreting으로 Bytecode를 생성하고 실행하면서 Profiling data와 함께 TurboFan으로 Bytecode를 보내는 것을 알았다. 여기서 TurboFan의 역할은 최적화된 Machine Code를 만들어내는 것이다. 어떻게 만드는 것일까? 그 과정인 Inline Caching과 Hidden Class에 대해서 알아보자. Inline Caching 말 그대로 캐싱이다. 효율성을 위해 자주 사용하는 데이터를 빠른 속도로 접근하기 쉬운 곳에 저장해두고 사용하는 것이다. 아래 코드를 보자. 이 코드가 반복된다면 getName이라는 함수에 의해 This is DevJoong 이라는 문구가 계속 만들어질것이다. 똑같은 내용이 리턴되는데 반복해서 객체에서 name을 찾을 필요가 없으므로 compiler(TurboFan)은 This is ${obj.name}을 `This is D