Node.js
-
Node.js - 요청과 응답Node.js 2021. 9. 24. 03:31
서버는 클라이언트가 있기에 동작한다. 클라이언트 -> 서버 : 요청 ( request ) 서버 -> 클라이언트 : 응답 ( response ) 즉, 서버는 요청을 받는 부분과 응답을 보내는 작업이 이루어져야 한다. 요청과 응답은 이벤트방식으로 생각하면된다. 클라이언트로부터 요청이 왔을 때 어떤 작업을 수행할지 이벤트 리스너를 미리 등록해야한다. const http = require('http'); http.createServer((req,res)=>{ // 응답을 어떻게 할지 구현 }); http 서버가 있어야 브라우저의 요청을 처리할 수 있다. 때문에, http 모듈을 사용. http 모듈에는 createServer라는 메서드가 존재한다. 인수로 요청에 대한 콜백 함수를 넣을 수 있다. 요청이 들어올 ..
-
Node.js 교과서 - 이벤트 이해하기Node.js 2021. 9. 19. 03:35
이벤트 직접 만들어보기 const EventEmitter = require('events'); const myEvent = new EventEmitter(); myEvent.addListener('event1',() => { console.log('이벤트1'); }); myEvent.on('event2',() => { console.log('이벤트2'); }); myEvent.on('event2',() => { console.log('이벤트 2 추가'); }); myEvent.once('event3', () => { console.log('이벤트 3'); }); myEvent.emit('event1'); myEvent.emit('event2'); myEvent.emit('event3'); myEvent...
-
Node.js 교과서 - 파일 시스템Node.js 2021. 9. 19. 03:33
웹 브라우저에서 자바스크립트 사용할 때는 일부를 제외하고 접근이 금지되어 있다. const fs = require('fs'); fs.readFile('./readme.txt' , ( err , data ) => { if ( err ) { throw err; } console.log(data); // 버퍼 형식 console.log(data.toString); } 파일의 경로는 node 명령어를 실행하는 콘솔 기준이다. readFile의 결과 data는 buffer이다. 동기와 비동기 : 백그라운드 작업 완료 확인 여부 블로킹과 논 블로킹 : 함수가 바로 return 되는지 여부 동기-블로킹 방식에서는 백그라운드 작업 완료 여부를 계속 확인하며, 호출한 함수가 바로 return 되지 않고 백그라운드 작업이..
-
Node.js 교과서 - worker_threadsNode.js 2021. 9. 19. 01:47
worker_thread 모듈을 사용하여 Node에서 멀티 스레드 방식으로 작업을 진행한다. const { Worker , isMainThread, parentPort, } = require('worker_threads'); if(isMainThread){ const worker = new Worker(__filename); worker.on('message',message => console.log('from worker',message)); worker.on('exit', () => console.log('worker exit')); worker.postMessage('ping'); }else{ parentPort.on('message', (value) => { console.log('from par..
-
Node.js 교과서 - 암호화Node.js 2021. 9. 19. 01:47
crypto 다양한 방식의 암호화를 도와주는 모듈 비밀번호는 반드시 암호화 해야한다. [ 단방향 암호화 ] 복호화 : 암호화된 문자열을 원래 문자열로 되돌려 놓는 것 단방향 암호화 : 복호화 할 수 없는 암호화 방식 => 주로 해시 기법 사용 비밀번호는 단방향 암호화해야 한다. 처음 데이터베이스에 저장할때 암호화한 해쉬 번호를 저장하고, 동일한 알고리즘 방법으로 비밀번호를 해쉬 번호로 바꿔서 비교한다. const crypto = require('crypto'); console.log('base64:', crypto.createHash('sha512').update('비밀번호').digest('base64'); console.log('hex:', crypto.createHash('sha512').updat..
-
Node.js 교과서 - path , url , querystringNode.js 2021. 9. 19. 01:46
Path 폴더와 파일의 경로를 쉽게 조작하도록 도와주는 모듈 path.dirname(경로) : 파일이 위치한 폴더 경로 path.extname(경로) : 파일의 확장자 path.basename(경로 , 확장자) : 파일의 이름을 표시 path.parse(경로) : 파일 경로를 rott , dir , base , ext , name으로 분리한다. URL 인터넷 주소를 쉽게 조작하도록 도와주는 모듈이다. url 주소 윗 부분은 노드 방식의 url url 주소 아랫 부분은 WHATWG 방식의 url const url = require('url'); const { URL } = url; const myURL = new URL('http://www.gilbut.co.kr/book/bookList.aspx?serc..
-
Node.js 교과서 - processNode.js 2021. 9. 19. 01:46
process Node에서 process는 현재 실행되고 있는 노드 프로세스에 대한 정보를 담고 있다. process.version : 설치된 노드의 버전 process.arch : 프로세서 아키텍처 정보 process.platform : 운영체제 정보 process.pid : 현재 프로세스 아이디 process.uptime() : 프로세스가 시작된 후 흐른 시간 ( 단위는 초 ) process.execPath : 노드의 경로 process.cwd() : 현재 프로세스가 실행되는 위치 process.cpuUsage() : 현재 CPU 사용량 [ process.env ] 시스템의 환경 변수, 서비스의 중요한 키를 저장하는 공간 ( 서버나 데이터베이스의 비밀번호와 각종 API 키 ) NODE_OPTIONS ..