목록노드js (17)
바르고 뜨겁게
FS(파일시스템) 모듈 - 동기와 비동기노드는 파일시스템에 접근이 가능하다.const fs = require('fs'); // 파일 읽기 fs.readFile('./readme.txt', (err,data)=>{ if (err){ throw err; } console.log(data); // 버퍼형태 console.log(data.toString()); }); // 파일 쓰기 fs.writeFile('./writefile.txt', '노드로 생성된 파일입니다.', (err)=>{ if(err){ throw err; } fs.readFile('./writefile.txt', (err,data)=>{ if (err){ throw err; } console.log(data.toString()); }..
util 모듈(deprecate, promisify)deprecateconst util = require('util'); const dontUseMe = util.deprecate((x,y)=>{ console.log(x+y); },'이 함수는 2019-01-01 까지만 지원합니다.'); dontUseMe(1,2);3 (node:20972) DeprecationWarning: 이 함수는 2019-01-01 까지만 지원합니다. promisify(error,data)=>{}형태의 콜백은 프로미스로 만들 수 있다.프로미스 형태는 async/await 변경 가능하다const util = require('util'); const crypto = require('crypto'); // 아래와 같은 콜..
crypto 양방향 암호화(cipher)const crypto = require('crypto'); // hiddenKey 를 알아야 복호화 가능 // utf8 문자열을 base64 암호문으로 변경 const cipher = crypto.createCipher('aes-256-cbc', 'hiddenKey'); let result = cipher.update('password', 'utf8', 'base64'); result += cipher.final('base64'); console.log('암호화된 암호: ', result); // 복호화 // 잘못된키 입력시 Error: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad de..
OS 모듈require('os') 로 임포트(?)해서 사용가능// OS 내장 모듈 console.log('---- OS 모듈 ----'); const os = require('os'); console.log('os.arch(): ',os.arch()); console.log('os.platform(): ',os.platform()); console.log('os.type(): ',os.type()); console.log('os.uptime() 운영체제의 실행시간: ',os.uptime()); console.log('os.hostname(): ',os.hostname()); console.log('os.release(): ',os.release()); console.log('os.homedir(): ',..
global 내장객체기존 환경에는 window라는 전역객체가 있어서 window.setTimeout등을 사용가능했음.노드에는 window 대신 global이 존재.global 객체는 전체 공유가 됨.// globalA.js module.exports = () => global.message;// globalB.js const A = require('./globalA'); global.message = '안녕하세요'; console.log(A());안녕하세요 __filename, __dirname, processconsole.log('파일 경로: ',__filename); console.log('파일이 위치한 경로: ',__dirname); // process 객체에는 현재 실행중인 노트 프..
모듈이 될 파일은 module.exports = 값; 을 마지막에 넣어야된다// var.js const odd = '홀수입니다'; const even = '짝수입니다'; console.log(odd); even = even + 'zero'; module.exports = { odd, even, }; // 이전 문법 module.exports = { odd: odd, even: even, };const 변수 = require('파일경로');// func.js const variable = require('./var.js'); console.log(variable.odd); console.log(variable.even);비구조화할당으로 간단하게 표현// func.js const..
노드는 런타임 가상머신(Vm)이다.노드를 깔면 노드안에 가상머신이 있기 때문에 어느 환경에서나 자바스크립트를 사용가능하다.원래 자바스크립트는 웹브라우저내에서 동작하지만 노드의 등장으로 웹브라우저 밖에서도 사용할 수 있게 되었다. node 결과는 크롬의 개발자 도구의 console 창과 똑같다. 둘다 REPL(Read, Evaluate, Print, Loop) 방식을 사용하기 때문이다.노드의 특징: 이벤트기반, 논블로킹 I/O모델, 싱글쓰레드 이벤트 기반 (event-driven)호출스택과 태스크큐에 작업이 없더라도, 이벤트 리스너가 이벤트를 기다리고 있는 것 논블로킹 I/O호출스택에서 태스크큐로 보내서 눈에 보이는 코드와 다르게 실행 순서를 바꾸는 개념자바스크립트는 싱글쓰레드이기 때문에 동시작업이 불가능..