nodejs

    [ Node.js #03 V8 아키텍처 ] Garbage Collection

    지난 포스팅에서는 V8 엔진의 소스코드 컴파일 및 실행하는 과정을 작성하였었습니다. V8엔진에서 Code Caching이 핵심 기술이라고 기술하였는데 어떠한 과정을 거쳐서 진행되는지가 제일 중요합니다. 그렇다면 V8 엔진이 어떻게 작동하는지 조금 더 자세하게 알아보겠습니다. V8의 역할 1) JavaScript 소스 코드를 컴파일 및 실행 2) 힙 메모리 객체에 대한 메모리 할당 3) Garbage Collection 4) 콜스택 핸들링 위의 역할중에 GC가 V8의 핵심 기능이라고 볼 수 있습니다. GC의 역할은 주기적으로 작업이 완료된 객체 정보 수집하여 재사용할 수 있는 메모리로 전환하는 역할을 합니다. 가장 초기 아키텍처(2015년 10월 30일)부터 살펴보면 V8 GC의 대부분이 메인 렌더링 스레..

    [ Node.js #02 V8 아키텍처 JIT ] Node JS V8 Engine 이란?

    들어가기에 앞서 Nodejs 동작원리를 이해하기 위해 V8 공식 홈페이지를 기반으로 과거(2015년)부터 현재(2023년)까지 초기 아키텍처를 변역하며 연구하는 과정입니다. 초기 아키텍처에서 현재 아키텍처로 변화하는 과정에서 어떤 부분이 메모리 누수가 있었고 어떤식으로 해결해왔는지 엔진 전문가가 아닌 입장에서 해석하는 과정이므로 작성에 틀린 내용이 있을 수 있습니다. 또한 공식 사이트에 간단하게 설명되어 있는 부분이 있다면 그 내용도 연구하고 작성하오니 틀린 내용이 있다면 댓글로 남겨주시면 정정하도록 하겠습니다. V8 엔진이란? C++로 개발된 Google의 JavaScript 및 WebAssembly 기반 오픈소스 엔진으로 V8은 JIT compilation를 사용하여 JavaScript 코드를 실행하..

    [ Node.js #01 ] Node JS란 무엇인가?

    Nodejs®는 Chrome V8 JavaScript 엔진으로 빌드된 런타임으로 가볍고 빠르며 확장성이 뛰어난 장점을 가지고 있습니다. 기본적으로 웹 개발의 경우 프론트엔드(Front-end) & 백엔드(Back-end)로 나눠지는데 그동안 주로 JavaScript는 프론트엔드 분야에서 주로 사용이 된다는 틀을 깨버리고 React Native를 통해 어플리케이션까지 개발 및 프론트 & 백엔드 모두 사용이 가능하다는 인식으로 바뀌게 되었습니다. 동영상 스트리밍 사이트, 단일 페이지, 온라인 채팅 등 웹을 개발하기에 매우 최적화 된 JavaScript 기반 개발언어로 대기업과 스타트업 등 다양한 기업에서 사용되며 현재 개발언어 순위 7위입니다. 이 뛰어난 언어는 Ryan Dahl등 681명이 개발하였으며 자..