목록분류 전체보기 (126)
바르고 뜨겁게
events 모듈const EventEmitter = require('events'); const endCallback = ()=>{ console.log('안녕히 가세요'); } // 이벤트를 만들 수 있게 해주는 모듈 // myEvent.addListener(이벤트명, 콜백리스너); const myEvent = new EventEmitter(); // '방문'이라는 이름의 이벤트 생성 myEvent.addListener('방문', ()=>{ console.log('안녕하세요? xxx 홈페이지 입니다') }); // addListener = on (같은 기능:별명) myEvent.on('종료', ()=>{ console.log('종료 되었습니다'); }); // 같은 이벤트에 ..
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'); // 아래와 같은 콜..
의사결정트리 (DecisionTree) 의사결정트리 진행순서DefineProblem, CollectTrainingData - 문제인식,데이터수집ExtractData, Build a tree - 분류, 트리생성DeployMachineTest분류 트리생성효율적으로 많은 분류가 되도록 생성한다. (InformationGain을 높게 생성한다.)entropy : 혼잡도 InformationGain = base entropy - new entropy 원본 출처 (해당 포스팅은 아래 출처를 통해 공부한 내용입니다.)https://www.inflearn.com/course/%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D%EC%9D%B4%EB%A1%A0-%ED%8C%8C%EC%9D%B4%EC%8D%A..
최근접 이웃 알고리즘 kNN (k -NearestNeighbors) algorithm 상단의 그래프에 있는 녹색별은 액션영화인지 로맨틱영화인지 구분하기 모호한 영화이다. 그렇다면 이 영화가 액션영화인지 로맨틱영화인지 어떻게 하면 구분할 수 있을까?( 파란동그라미와 하트는 각각 액션영화와 로맨틱영화들로, 각각의 영화에서 등장한 Kick 과 Kiss의 값을 가지고 있다. )영화에서 Kick의 등장 횟수와, Kiss의 등장횟수의 데이터를 가지고 다른 영화와 비교하여 kNN 알고리즘을 사용해 알아보자.k : 최근접점을 몇개까지 볼것인가? (보통 홀수를 사용)k = 3으로 설정하고 예측값을 알아보자. 각 영화간의 거리를 피타고라스의정의로 구한 뒤 비교하면 예측값을 구할 수 있다. 원본 출처 (해당 포스팅은 아래 ..
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..
이벤트 루프는 가능하다면 언제나 시스템 커널에 작업을 떠넘겨서 Node.js가 논 블로킹 I/O 작업을 수행하도록 해줍니다.(JavaScript가 싱글 스레드임에도 불구하고)대부분의 현대 커널은 멀티 스레드이므로 백그라운드에서 다수의 작업을 실행할 수 있습니다. 이러한 작업 중 하나가 완료되면 커널이 Node.js에게 알려주어 적절한 콜백을 poll큐에 추가할 수 있게 하여 결국 실행되게 합니다. function run(){ console.log('1초후 실행'); } console.log('시작' ); setTimeout(run, 1000); console.log('끝');시작 끝 3초후 실행태스크큐에 들어가는 경우 : setTimeout, setInterval, setImmediate, Promi..