Javascript (1) 썸네일형 리스트형 V8 엔진의 히든 클래스와 인라인 캐싱 모던 자바스크립트 Deep Dive책에서 간단하게 소개한 V8 엔진의 히든 클래스 방식에 대해 이해한 바를 간단한게 정리하고자 포스팅을 작성해본다. 1. 프로토타입 기반 언어의 함정 자바스크립트는 프로토타입 기반 언어로, 클래스 기반 언어와 다르게 객체에 프로퍼티를 런타임에서 추가하거나 삭제할 수 있다. 클래스 기반 언어의 경우 같은 클래스에 속한 객체들은 모두 같은 필드 구조를 가지므로, base address에 offset을 더하는 방식으로 프로퍼티에 접근할 수 있다. 따라서 컴파일타임에 객체의 프로퍼티가 어디있는지를 바로바로 알 수 있다. 반면 자바스크립트는 런타임에 프로퍼티가 더해지거나 삭제되거나 프로퍼티 값의 타입이 변할 수 있으므로 이런 offset 공유 방식을 사용할 수 없다. 따라서 각 객.. 이전 1 다음