Node.js 시작을 위한 필수 라이브러리 © casparrubin, 출처 Unsplash 가볍게 오늘은 노드에 활용되는 함수들이 뭐가 있는 지 알아보자! 여러가지 언어를 막 하다보면 이것저것 머리가 복잡해지는 거 같아서 간ㄷ나하게 기록을 한다. 기본 require() 다른 모듈을 연결할때 활용하는 임포트 함수입니다! 모든 언어에서 꼭 알고 넘어가야하는 부분일 것 입니다. 모듈 만들기 외부에서 활용하기 위해서 설정해야하는 옵션들 ! export.module = module module.exports = module exports.a = "hello" module.exports.a = 1 module.exports = { a: 1, b: 'c', fun: () => { ... }, fun2: function(){ ... } } npm Node Package Manager 로 패키지를 설치할때 활용하게 됩니다. npm install 패키지명 npm init은 현재 디렉토리의 패키지를 묶는 행동을 합니다! package.json 현재 디렉토리의 정보를 가지고 있다. pakcage-lock.json 현재 디렉토리의 노드 프로젝트에 사용된 실제 패키지들의 정보를 가지고 있다. 사용하면 좋은 패키지 노드를 하기위해서는 여러가지 패키지들을 알고 있으면 좋다. 실제로 개발을 하다보면 검색을 통해서 패키지명을 다시한번 검토하지만 어느정도 알고 있다면...
WebRTC 1:1 화상 채팅 만들기 © Tumisu, 출처 Pixabay WebRTC에 대해서 이전에 알아보았는데요. 오늘은 1:1 P2P 통신을 같이 만들어보겠습니다. 이해하기 쉽도록 오늘은 모든 함수명 변수명은 한글로 작성하였습니다. 실제 개발을 하신다면 영어로 잡아주세요! 백엔드 개발하기 시그널링 서버 이전 내용을 보시면 시그널링 서버와 그리고 프론트가 필요하다고 하였습니다. 가장 중요한 백엔드 서버를 개발해보겠습니다. 통신의 정보를 주고 받는 도우미 역할인 시그널링 서버 만들기 개발 환경 셋팅 Node.js - express - socket.io const express = require("express"); const socket = require("socket.io"); express 패키지를 활용하여 포트를 개방하는 용으로 사용하며 socket.io를 활용하여 프론트가의 통신을 교환하는 용도로 사용합니다! 시그널링 서버 백엔드 코드 일단 시그널링 서버의 코드를 확인하고 각 역할에 대해서 설명을 달겠습니다. 방정보 = {} io.on('connection', socket => { socket.on('방접속', 방번호 => { if (방정보[방번호]) { const len = 방정보[방번호].length; // 1:1 통신 구현이라 2명 제한 if (len == 2) { socket.to(socket.id).emit('방인...
WebRTC Zoom 클론 서비스 만들어 보기 © charlesdeluvio, 출처 Unsplash 안녕하세요 예전에는 Zoom SDK 를 활용하여 영상/미디어 통신을 이용한 서비스를 구축테스트 해보았는데 이번에는 WebRTC (Web Real Time Communications)에 대해서 알아보려고합니다. 별도 플러그인이 필요하거나 그런것은 아닙니다. 간단하게 인터넷이 가능한 환경에서 통신하는 서비스를 구축하기 위한 기술입니다. WebRTC의 핵심 인터페이스와 알아야할 것 WebRTC An open framework for the web that enables Real-Time Communications (RTC) capabilities in the browser. webrtc.org 공식 홈페이지에 가면 가이드라인이 있기 때문에 더욱 좋은 자료들이 수두룩 합니다. 먼저 가장 중요한 핵심 메서드에 대해서 알아보도록 하겠습니다. 구현은 통신에 활용할 백단 언어와 프론트단 언어는 개발자의 입맛에 따라서 구현하면 됩니다. 아 잡담이 길었네요 본격적으로 핵심 메서드와 알야아하는 사전 지식을 알아보자! WebRTC 프로토콜 소개 - Web API | MDN 이 글은 WebRTC API에 대한 프로토콜을 소개하기 위해 작성 되었습니다. developer.mozilla.org 솔직히 위의 사이트의 내용을 보면 더더더 이해가 쉽습니다! 핵심 객체...
AJAX ? Axios ? 자신이 편한것을 사용하라! © dell, 출처 Unsplash 처음으로 AJAX (아작스, 에이작스)를 위주로 보통 비동기 통신 작업을 하고 있었던 나로써 새로운 언어에 대해서 공부를 하거나 프로젝트를 구성하다보면 Axios를 많이 사용하는 경우가 있었다. 솔직히 말하면 나는 그런 코드가 있으면 그냥 버리고 Ajax로 최대한 구현을 해버렸지만... "시대의 바뀜에 움직일 줄 알아야한다는 생각으로 액시오스 모듈을 접하기로 마음을 먹었다!" (자료들을 찾아보니 Ajax와 거의 동일하며 내부적인 건 모르지만 외적으로 사용하는 건 거의 완전하게 동일하다) 액시오스 란? Axios Node.js의 "Promise API활용한 비동기 HTTP 통신 라이브러리"입니다. 백엔드와 프로트엔드 ㄷ통신의 효율성을 높이기 위해서 Ajax와 같이 더불어 사용하기 좋은 라이브러리라고 합니다! 특징 XMLHttpRequest, http api(Node.js)로 모두 활용이 가능하며 HTTP 요청 취소, 응답결과를 자동으로 JSON화 액시오스 설치부터 간단하게 사용하는 방법 설치하기 yarn add axios npm install axios 자신의 패키지 관리 툴 입맛에 맞춰서 설치를 하시면 됩니다. 저는 npm을 활용하였지만 yarn으로 설치가 가능합니다! 당연히 자신의 프로젝트가 속한 디렉토리에서 설치를 하셔야합니다 연결하기 imp...
node 프로세스 관리 (nodemon, forever, PM2) 오늘은 Node.js 프로세스 무중단 서비스를 위한 기본 베이스를 알아보려고합니다. 노드 프로세스 관리를 위한 모듈에는 nodemon, forever, pm2가 존재합니다. 원래 기존에는 forever로 관리하다가 관리하면서 시각적으로 보기가 불편하여 pm2로 교체 예정입니다. 또한 제가 PM2를 활용하게된 이유는 지금은 수 천명이지만 추 후에는 수 만명 개발한 모듈을 사용할 것이라고 예측되기때문입니다. 그런 경우를 방지하여 싱글쓰레드인 Node.js를 여러 다중 인스터스로 나누어주려고 쓰는 것 입니다. 실제로 여러개의 instance를 열어주고 난 후 결과를 보지는 못하였지만 일단 안전하게 미리 작업해두려고 합니다. PM2 설치하기 PM2 - Home Advanced process manager for production Node.js applications. Load balancer, logs facility, startup script, micro service management, at a glance. pm2.keymetrics.io 공식홈페이지에 접속하시면 아래 이미지를 보시게됩니다. 설치법은 아주 간단한 npm install 명령어를 활용하여 설치해주시면 됩니다. npm install pm2 -g npm install pm2@latest -g 위의 방식 중...
[Node.js] 활용한 REST API 요청 및 반환받기 해당은 테스트를 위해서 작성한 코드이며 응용하여 실제 타 RESTful API를 요청하고 결과를 토대로 자신의 프로젝트를 완성해보세요. 필수 모듈 설치하기 Node에서 RESTapi를 활용하려고 하시면 request 패키지를 설치해주셔야합니다. 패키지설치 npm install request 작성파일 const request_api = require('request'); 패키지가 없는 경우 작업을 진행할 폴더에서 npm을 활용하여 request를 설치해주세요. 그 후 연결을 하여 활용해주시면 됩니다. REST API 테스트 해보기 해당 코드는 이전 API 만드는 과정에 일부 소스입니다. 테스트를 위해서 우리는 외부에서 요청을 할 것이며 요청된 기능에서 노드에서 RESTful API를 요청하면 어떤식으로 이루어지는 지 보기 위한 코드입니다. //CALL 소스 let options = { url:'', method : 'GET', headers : '', body: '', /* json */ json:true }; options.headers = { username : "YYK", userage : 29, mode : "ins" }; options.url = "http://192.168.0.118:9999/return"; request_api(options,function(erro...
[Node.js] 활용한 REST API 만들기 해당 포스팅은 노드를 기본적으로 셋팅한 것을 가정하고 진행하겠습니다. 혹시나 설치과정이 궁금하신 분은 아래의 링크를 활용해서 간단하게 설치를 후다닥 마치고 API 개발에 참여해보세요. [Node.js] 설치하기 비쥬얼스튜디오코드 활용하기 Node.js 설치하기 이번에 하는 MQTT와 연동하는 작업해서 활용하게될 서버사이드의 역할은 Node를 활... blog.naver.com Node.js REST API 기본 Node.js를 활용하여 API만들기 해당 방법을 응용하여 react, Vue등 다양한 파생 언어에서도 누구나 손쉽게 만들 수 있습니다. 하지만 서버단에서 보통하는 행위이다 보니 별도로 구분하여 Node.js를 통해서 개발하시는 것을 추천합니다. 노드 REST API를 만들기 이전에 Node를 활용하여 간단하게 Hello Node World를 찍어보겠습니다. 코드 분석 const http = require('http'); //HTTP 라이브러리를 http에 연결 http.createServer(function(req, res) { var url = req.url; //도메인 이후 주소정보 if(url == "/"){ //도메인 접근 시 try{ res.writeHead(200,{'Content-Type':'text/html'}); res.end("hello Node World",...
Hash 암호화 (SHA256 해시) 필수 라이브러리 라이브러리 명 crypto 설치방법 npm install crypto 연결방법 require('crypto') crypto.creatHash('알고리즘') SHA 암호화란? Secure Hash Algorithm 이라고 불리며 대부분 사용하는 알고리즘으로는 SHA-256/224 SHA-512/384 가 사용됩니다. 알고리즘 종류별로 나오는 모양 자체가 다른데요 256/224 사용시에는 32바이트의 HEX데이터를 제공해줍니다. 512/384 사용시에는 64바이트의 HEX데이터를 제공해줍니다. 사용방법 const crypto = require('crypto'); crypto.createHash('sha256').update('암호화할데이터').digest('hex'); Buffer 데이터와 문자열 Buffer 암호화 데이터의 차이 협업을 하면서 개발을 하다보면 내부문서를 이용하여 서로 프로세스를 공유하여 작업이 이루어진다. 그럴 경우 발생할 수 있는 문제이며 나 또한 해당 문제가 있어서 혹시나 하는 마음에 간단하게 글을 올립니다. data = "110022aabbccddff" data = 11 00 22 aa bb cc dd ff 두개는 누가봐도 다르지만 문서를 볼때는 그냥뭐 그러려니 하면서 문자열에 110022.. 이렇게 넣어서 작업을 하고 있었는데 알고보니 실제로 두가자의 ...
Node.js 설치하기 이번에 하는 MQTT와 연동하는 작업해서 활용하게될 서버사이드의 역할은 Node를 활용합니다. 이번 프로젝트는 시간이 조금 걸릴거 같아요 하지만 단기간에 해야해서 매일 틈틈히 찾아보고있습니다. 암,복호화 인증관련 등등인데 마지막 단계에서 지금 진전이 없네요. 자료도 없고.. Node.js 다운로드 다운로드 | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 해당 페이지에 접근하여 다운로드를 받으실 수 있습니다. 보통 버전에 대해서 많은 고민을 하는데 LTS버전을 받는게 가장 좋다고 생각됩니다. 안정화된 버전이니깐요 최신버전을 활용하고 싶으시면 최신버전을 활용하시면 됩니다. 설치과정 과정은 생각할 것 없이 그냥 진행하는데로 Next만 쭉쭉 넘겨주시면 아주 잘 깔끔하게 설치를 해줍니다. 환경변수 한번 확인해주시고 보통은 그냥 Next쭉쭉 눌렀으면 자동으로 Path에 자동으로 노드가 한 줄 추가되 있습니다. 환경 변수가 어마무시하게 설정이 추가되어있네요.. 그 후 CMD를 열어주시고 노드의 버전을 확인해주시면 간단하게 설치가 마무리된 것을 확인 하실수 있습니다. 정상적으로 저는 14.15.4가 설치되어 있습니다. 이제부터 암, 복호화 서비스용 프로젝트를 진행해야겠습니다. Node.js 비쥬얼스튜디오 코...