목록분류 전체보기 (85)
melius
Promise는 비동기 처리의 한 방법으로, 전형적인 콜백패턴의 문제인 콜백지옥(callback hell)을 해결하기 위한 방법으로 많이 쓰인다. 인스턴스 생성 Promise의 인스턴스를 생성하면 인자로 전달된 함수를 실행한다. 인자로 전달된 함수는 resolve, reject 2개의 함수인 인자를 가지는데, 성공하면 resolve를 실행하고, 실패하면 reject를 실행시키면 된다. 오류가 발생하면 자동으로 reject를 실행된다. function genPromise(flag) { return new Promise(function (resolve, reject) { console.log("do something"); // throw new Error('something went wrong'); if (..
https://github.com/theturtle32/WebSocket-Node https://github.com/theturtle32/WebSocket-Node/blob/master/docs/index.md websocket는 Node.js에서 WebSocket 통신을 가능하게 해주는 모듈이다. 설치 $ npm install websocket WebSocket 서버 실행 const WebSocketServer = require('websocket').server; const http = require('http'); const port = 3000; let server = http.createServer(function (req, res) { res.writeHead(404); res.end(); }..
WebRTC API https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API WebRTC (Web Real-Time Communication)는 브라우저간 데이터 교환 뿐만 아니라 audio/video media를 캡쳐링(capturing) 하거나 스트리밍(streaming)할 수 있게 하는 기술이다. Introduction to WebRTC protocols https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Protocols NAT (Network Address Translation) NAT는 사용자 장치에 public IP address를 주기 위해서 사용된다. 라우터는 public IP 주소를..
WebAssembly Concepts https://developer.mozilla.org/en-US/docs/WebAssembly/Concepts WebAssembly는 브라우저(or Node.js)에서 실행가능한 low-level assembly-like 언어로서, C/C++이나 Rust로 작성한 코드를 컴파일하여 생성할 수 있으며, JavaScript와 함께 사용될 수 있다. WebAssembly key concepts Module / Memory / Table / Instance Wasm code는 Online Wasm Assembler를 사용거나 Emscripten을 사용하여 생성할 수 있다. Online Wasm Assembler WasmFiddle / WasmFiddle++ / WasmExp..
MediaStream Recording API https://developer.mozilla.org/en-US/docs/Web/API/MediaStream_Recording_API MediaStream 객체나 TMLMediaElement 객체에서 생성된 데이터를 capture하여 분석, 가공, 저장을 가능하게 해준다. Recording Process 1. media data의 source 생성 (MediaStream or HTMLMediaElement) 2. MediaRecorder 객체 생성 (source와 option 인수 전달) 3. MediaRecorder.ondataavailable 이벤트 핸들러 등록 4. source에서 데이터가 생성되면, MediaRecorder.start() 메소드를 호출..
https://nodejs.org/api/worker_threads.html worker_threads 모듈은 병렬로 JavaScript를 실행하는 thread를 생성한다. 브라우저에서는 Web API인 Worker 객체를 사용한다. Worker 생성 Main thread에서 Worker 생성자 함수의 인수로 Worker thread에서 실행할 Script가 담긴 파일경로를 인자로 전달하면 worker 객체(instance)가 생성된다. Script가 Main thread에서 실행되는지 여부는 isMainThread 속성으로 확인할 수 있다. // main.js const { Worker, isMainThread } = require('worker_threads'); const worker = new W..
https://github.com/websockets/ws https://github.com/websockets/ws/blob/master/doc/ws.md ws는 Node.js에서 WebSocket 통신을 가능하게 해주는 모듈이다. 브라우저에서는 Web API인 WebSocket 객체를 사용한다. 설치 $ npm install ws WebSocket 서버 실행 express 모듈을 이용하여 서버를 실행하는 방법은 아래와 같다. const express = require("express"); const WebSocket = require("ws"); const app = express(); app.set('port', process.env.PORT || 3000); const server = app.li..
Media Capture and Streams API https://developer.mozilla.org/en-US/docs/Web/API/Media_Streams_API MediaDevices MediaDevices.enumerateDevices() - Returns: Promise, fulfillment handler의 인수는 MediaDeviceInfo 배열 사용 가능한 Media Device의 정보를 확인할 수 있다. navigator.mediaDevices.enumerateDevices() .then(devices => { devices.forEach(device => console.log(device.kind, device.deviceId)); }) .catch(err => console.l..