자바스크립트 컨테이너
컨테이너는 응용 프로그램과 그 실행 환경을 패키징하고 격리하는 데 사용되는 기술이다. 배포되는 서비스 소프트웨어의 운영체제 수준을 가상화하고, 응용 프로그램 및 시스템 종속성을 포함한 모든 것이 포함된 독립적인 환경을 제공한다. 이런 리눅스 컨테이너보다는 좀 더 높은 추상화 레벨이긴 하지만 유사한 형태의 격리환경은 브라우저의 JavaScript 환경이다.
컨테이너는 응용 프로그램과 그 실행 환경을 패키징하고 격리하는 데 사용되는 기술이다. 배포되는 서비스 소프트웨어의 운영체제 수준을 가상화하고, 응용 프로그램 및 시스템 종속성을 포함한 모든 것이 포함된 독립적인 환경을 제공한다. 이런 리눅스 컨테이너보다는 좀 더 높은 추상화 레벨이긴 하지만 유사한 형태의 격리환경은 브라우저의 JavaScript 환경이다.
컨텍스트 간 사용자 정의 객체 전달MessagePort는 서로 다른 컨텍스트 간에 메시지를 교환하기 위한 메커니즘입니다. V8 자바스크립트 엔진은 기본 객체들의 컨텍스트 간 이동 시 직렬화와 역직렬화 방법을 제공하며, 사용자 객체에 대해서도 직렬화와 역직렬화를 위한 인터페이스를 제공합니다. 그러나 V8이 기존에 제공하던 이러한 인터페이스에는 문제점이 있어,
2019년에 소개된 io_uring은 Linux 커널을 위한 비동기 I/O 인터페이스입니다. 기존 인터페이스인 epoll/kqueue와 aio 대비하여 뛰어난 성능과 간결하고 직관적인 API 사용성을 제공합니다. io_uring은 비동기 I/O, 시스템 콜의 다중 배치 처리, 유연한 버퍼 관리 등을 통해 Linux I/O
2009년 Node.js가 등장한 이래 Node.js는 현대 소프트웨어 개발에서 매우 중요한 역할을 하고 있습니다. 그러한 역할은 산업 전반의 다양한 활용 사례를 통해 입증되고 있습니다. 이 글은 그 활용 사례중 한 도입 사례를 한 발 더 깊이 연구해봅니다. 무엇이 문제였는지, 그리고 그 문제 해결에 어떻게 도움이 되었는지 확인해 봄으로서 Node.js의
WebAssembly (WASM)웹어셈블리(WebAssembly 또는 Wasm)는 다양한 프로그래밍 언어와 많은 실행 환경 사이의 중간 계층으로, 30여 가지 이상의 언어로 작성된 코드를 .wasm 파일로 컴파일한 다음 브라우저나 다른 실행 환경에서 실행할 수 있다.
Node.js Core 에서 JavaScript 생명주기를 관리하는 방법을 알기 위해서는 V8 API를 통해 메모리를 관리하는 컨셉을 이해할 필요가 있다. 모든 JavaScript 값은 V8 API를 통해 소위 핸들이라는 것을 통해 액세스된다. 이 핸들은 메모리 관점에
JavaScript와 C++ 간의 효율적인 연결은 Node.js에서 중요한 문제 중 하나이다. 이러한 연결을 가능하기 위해 Node.js Core에서는 기본 C++ 클래스로 BaseObject 사용한다. BaseObject는 JavaScript 객체와 C++ 객체를 함
2022년 Node.js 에는 Realm Class가 추가되었다. Realm은 주로 실행 환경을 정의하고 코드 간의 격리와 분리를 유지하기 위한 목적으로 사용된다. 기존 Node.js VM 모듈이 있으나 Node.js 자체 기능이고 JavaScript Object Gr
브라우저 외부에서 JavaScript를 사용할 수 있는 Node.js가 등장한 이후 산업전반에서 다양하게 활용되며 De-facto 표준으로 자리잡았다. 현재는 Node.js의 결점을 보완하거나, 각 회사에 최적화 된 자체 솔루션으로 대체하는 방향으로 JavaScript
Greetings, ReadersI'm Daeyeon Jeong, the creator of this blog. Within these pages, I explore various technical domains and share my discoveries al