node.js

제목 : 웹 어셈블리와 Node.jsNode.js 에서 싱글스레드 기반으로 운용되는 Node.js 환경을 멀티스레딩 환경으로 만들어,CPU 집약 비즈니스를 나눌 수 있는 방식을 탐색 했다.이후, 더 최적화 할 수 있는 방식을 연구하며Web Assembly 라는 것을 알게 되었다. 이 글은 밑의 블로그 포스팅과 이어진다.https://codecreature.tistory.com/201갑자기 왜 어셈블리?Node.js 는 현재 웹 서버와 웹 어플리케이션 서버에서 주요하게 사용되고 있다.하지만, 아무리 CPU 집약 비즈니스 코드를 나누어 스레드로 새로 생성하더라도,새로운 스레드 또한 JavaScript 코드를 해석하기 위해 Node.js 엔진을 사용한다.물론, V8 엔진도 훌륭하지만, 기계어가 가깝게 이미 파..
제목 : Node.js 엔진에서 스레드 추가하기 (Worker)세상에는 정말 빠른 실행 시간과 계산을 보장하는 언어들이 많다.벌써 떠오르기를, C, C++JavaPythonRustSwiftGoKotlin등등..Node.js 기반의 엔진보다 CPU 실행 성능이 뛰어나며, Memory 절약도 뛰어난 언어일 것이다. (Python 은 약간 더 뛰어날듯?)JavaScript 는 위의 언어들 중 몇 개들 보다 더 일찍 만들어 졌지만, 웹 페이지에서의 Dynamic 한 인터랙션을 위해 만들어졌다.기존의 HTML 문서는 DOM (Document Object Model) 로 파싱되어,JavaScript 를 통해 엘리먼트들의 위치나 속성을 동적으로 변경할 수 있게 되었다.웹을 위한 언어에서 머무르던 JavaScript ..
제목 : WebAssembly 와 Node.jsWebAssembly 는 높은 성능을 가진 어셈블리와 비슷한 언어이며,C, C++, Rust, AssemblyScript 를 포함하는 다양한 언어들로부터 컴파일 될 수 있습니다.현재, 이는 크롬, 파이어폭스, 사파리, 엣지, 그리고 Node.js 에서 지원되고 있습니다.웹어셈블리(WebAssembly) 의 세부 사양은 두 가지 파일 형태이며,.wasm 확장자를 가진 웹 어셈블리 모듈로 불리는 이진 형태,그리고 .wat 확장자를 가진 텍스트 형식의 웹 어셈블리로 불리는 텍스트 표현 형식 이 있습니다.핵심 개념Module - 이진 웹어셈블리로 컴파일되는데, 즉, .wasm 파일입니다.Memory - 재조정 가능한 ArrayBuffer 입니다.Table - 크기 ..
제목 : Node.js 에서 개발과 제품 환경 사이의 차이점Node.js 에서, 개발과 제품 사이의 차이점은 없습니다.즉, 당신이 Node.js 제품 구성에서 작동하도록 만들기 위해 적용해야 할 특정 세팅이 없다는 겁니다.하지만, NPM 레지스트리 내부의 소수 라이브러리들은,NODE_ENV 변수를 사용하여 인식하며, 이 변수는 기본적으로 development 세팅으로 되어 있습니다.당신의 Node.js 를 언제나 NODE_ENV=production 세팅으로 구동하세요.어플리케이션을 구성하는 유명한 방식으로는,twelve factor methodology - 12가지 요소 방법론 을 사용하는 것 입니다.Express 외부 패키지에서의 NODE_ENV널리 알려진 express 프레임워크에서, NODE_ENV..
제목 : ECMAScript 2015 (ES6) 와 그 이후Node.js 는 V8 의 현대 버전을 기반으로 구축되었습니다.이 엔진의 최신 릴리즈를 유지함으로서, 우리는 JavaScript ECMA-262 상세내역 의 새로운 기능이 Node.js 개발자들에게 적절한 시간에 제공된다고 보장합니다.게다가 성능과 안정성 또한 지속됩니다.모든 ECMAScript 2015 (ES6) 기능들은,shipping(운송), staged(준비, 기다림 단계 비슷), progress(진행) 이라는 세 그룹으로 분리됩니다.Shipping - 운송, 배송V8 에서 안정되었다고 고려하는 모든 운송, 배송 기능들은 Node.js 에서 기본 기능으로 변했으며,어떠한 유형의 런타임 플래그도 필요하지 않습니다.Shipping 기능들은 런..
제목 : NPM 패키지 매니저에 대한 소개NPM 에 대한 소개npm 은 Node.js 의 표준 패키지 매니저입니다.2022 년 9월, 210만 이 넘는 패키지가 npm 레지스트리에 나열되어 있다는 것이 보고되었습니다.이는 지구에서 가장 큰 단일 코드 레포지토리로 만들어 주었으며, 모든 것에 대한 패키지가 있다고 확신 할 수 있습니다.Node.js 패키지의 의존성을 다운로드하고 관리하는 방식처럼 시작했지만,프론트엔드 자바스크립트에서 또한 사용되는 도구이기도 합니다.Yarn 과 pnpm 이 npm cli 를 대체하기도 합니다. 이러한 위의 두 도구를 살펴볼 수 있습니다.패키지npm 명령어는 당신의 프로젝트에서 의존성 다운로드들을 관리합니다.모든 의존성 설치하기만약에 프로젝트가 package.json 파일을 ..
제목 : Node.js 와 브라우저 간의 차이점브라우저와 Node.js 둘 다 JavaScript 를 사용하며, 그들의 프로그래밍 언어로서 사용합니다.브라우저에서 실행되는 앱을 구축하는 것은 Node.js 어플리케이션을 구축하는 것과는 완벽하게 다릅니다.Node.js 가 언제나 자바스크립트를 사용한다는 사실에도 불구하고,경험을 근본적으로 다르게 만드는 몇 가지 중요 차이점이 존재합니다.자바스크립트를 널리 사용하는 프론트엔드 개발자의 관점에서,Node.js 앱은 는 그들에게 거대한 장점을 가져다 줍니다.어떠한 것을 프로그래밍 어떤 간에 편안합니다. - 백엔드도 동시에 같은 언어로 작성하므로당신은 거대한 기회를 가지고 있는데,왜냐하면 우리는 프로그래밍 언어를 넓게, 깊게 배우는 것이 얼마나 어려운 지 알고 ..
제목 : Node.js 에 대한 소개Node.js 자바스크립트 런타임 환경을 갖춘 오픈 소스이며, 크로스 플랫폼입니다.이는 어떤 유형의 프로젝트에 대해서도 매우 유명한 도구입니다.Node.js 는 브라우저 바깥에서 구글 크롬의 핵심인 V8 자바스크립트 엔진 으로 구동됩니다.이는 Node.js 가 매우 성능이 좋아지게 해 줍니다.Google Chrome 엔진 V8 을 브라우저 바깥에서도 적용시켜, 성능을 해결했다는 의미로 받아들일 수 있다.Node.js 앱은 단일 프로세스로 실행되며,모든 요청에 대해 새로운 쓰레드(Thread) 를 생성하지 않습니다.Node.js 는 표준 라이브러리에서 비동기적 입출력 우선순위 집합을 제공하는데,이는 자바스크립트 코드가 블로킹 되는 것을 방지합니다.그리고 일반적으로 Nod..
코딩크리처
'node.js' 태그의 글 목록