[JavaScript] JIT Pipeline
·
Javascript
크롬 브라우저와 Node.js에서 사용하는 자바스크립트 런타임인 V8 엔진은 코드의 실행 중에 컴파일을 동시에 수행하는 JIT(Just in time compilation)이 구현되어 있습니다.V8 엔진에서 JIT이 어떻게 작동하는지 간략하게 알아보겠습니다. V8 엔진에서의 코드 실행과정자바스크립트 코드 파싱크롬 혹은 Node.js가 자바스크립트 코드를 실행하면, 소스들이 V8 엔진으로 전달됩니다.V8 엔진은 전달된 자바스크립트 코드를 파서로 전달하고, 파서는 전달된 코드를 파싱 하여 추상 구문 트리(AST)로 변환합니다. 추상 구문 트리(AST)는 다시 Ignition 인터프리터로 전달됩니다. 바이트코드 생성 및 실행Ignition 인터프리터로 전달된 AST는 Ingition 인터프리터에 의해 바이트코..
[Javascript] Selection & Range
·
Javascript
최근 모 기업의 과제를 진행했는데, 평소에는 당연시 여기는 기능을 구현하는 것이었습니다.이 기능을 구현하면서 Selection API와 Range에 대해 처음 알게 되었고, 당연히 과제를 미흡하게 완성했습니다.최근 회사에 입사지원서를 넣으면서 자기소개로 "기본에 충실하면서 ~"라는 문구를 넣었는데, 과제를 진행해 보니 기본에 충실하지 못하다는 것을 깨달았습니다.기본에 충실한 개발자가 되도록하는 노력의 일환으로 Selection API와 Range에 대해 조사해 봤습니다.  Selection API를 사용하려면 우선 Range 객체에 대해 알아야합니다.RangeRange는 사전적으로 시작점과 끝점의 쌍(Pair)을 의미합니다.Range 객체는 Selection의 범위를 관리하는 객체입니다. Range 객체..