Node.js 38

암호화(단방향 :crypto, pbkdf2, 양방향), util

암호화는 CPU를 많이 잡아 먹어 멀티 쓰레드로 돌아간다. 암호화는 가능하지만 복호화는 불가능 암호화: 평문을 암호로 만듦 복호화: 암호를 평문으로 해독 비밀번호는 해시 !! 단방향 암호화의 대표 주자는 해시 기법 문자열을 고정된 길이의 다른 문자열로 바꾸는 방식 항상 같은 input에는 같은 output이 나옴 abcdefgh 문자열 -> qvew createHash(알고리즘): 사용할 해시 알고리즘을 넣어줍니다. md5, sha1, sha256, sha512 등이 가능하지만, md5와 sha1은 이미 취약점이 발견되었습니다. 현재는 sha512 정도로 충분하지만, 나중에 sha512마저도 취약해지면 더 강화된 알고리즘으로 바꿔야 합니다. update(문자열): 변환할 문자열을 넣어줍니다. digest..

Node.js 2020.12.10

OS, path, url 모듈

OS 운영체제의 정보를 담고 있음 모듈은 require로 가져옴(내장 모듈이라 경로 대신 이름만 적어줘도 됨) const os = require('os'); console.log(os.cpus()); // 나는 8코어를 사용하고 있어 8개의 결과가 나온다. os.arch(): process.arch와 동일합니다. os.platform(): process.platform과 동일합니다. os.type(): 운영체제의 종류를 보여줍니다. os.uptime(): 운영체제 부팅 이후 흐른 시간(초)을 보여줍니다. process.uptime()은 노드의 실행 시간이었습니다. os.hostname(): 컴퓨터의 이름을 보여줍니다. os.release(): 운영체제의 버전을 보여줍니다. os.homedir(): 홈 디..

Node.js 2020.12.07

노드 내장 알아보기 #2

require require가 제일 위에 올 필요는 없음 require를 한번 부르면 캐쉬 메모리에 올려두고 호출 할때마다 캐쉬 메모리를 확인하는 것임 require.cache : 한 번 require한 모듈에 대한 캐슁 정보가 들어있음. 그것을 보여줌 => 이거를 잘 이용하면 node를 끄지 않아도 실시간으로 코드 수정한 것을 적용시킬 수 있음 require.main : 노드 실행 시 첫 모듈을 가리킴. -> 하지만 import는 제일 위에 있어야함 순환참조 두 개의 모듈이 서로를 require하는 상황을 조심해야 함 Dep1이 dep2를 require하고, dep2가 dep1을 require 함. Dep1의 module.exports가 함수가 아니라 빈 객체가 됨(무한 반복을 막기 위해 의도됨) 순환..

Node.js 2020.12.04

노드 내장 알아보기 #1

너무 많아서 그냥 이런게 있구나 하고 넘어가면 됨 global 노드의 전역 객체 브라우저의 window같은 역할 => global, global this 모든 파일에서 접근 가능 window처럼 생략도 가능(console, require도 global의 속성) global 속성에 값을 대입하면 다른 파일에서도 사용 가능 -> 파일이 많아지면 어디서 썼는지 모르기 때문에 별로 좋지 않음 console 브라우저의 console 객체와 매우 유사 console.time, console.timeEnd: 시간 로깅 ( 두 개 사이의 코드 실행 시간을 알아볼 수 있다. ) console.error: 에러 로깅 console.log: 평범한 로그 console.dir: 객체 로깅 console.trace: 호출스택 ..

Node.js 2020.12.03

REPL와 모듈

REPL이라는 콘솔 제공 R(Read), E(Evaluate), P(Print), L(Loop) 윈도에서는 CMD, 맥이나 리눅스에서는 터미널에 node 입력 창에 node입력시 프롬프트가 > 모양으로 바뀌면, 자바스크립트 코드 입력 가능 입력한 값의 결과 값이 바로 출력됨. 그렇지만 거의 안씀 너무 불편함 가독성도 떨어지고 나는 VSC 쓸 것임 모듈 잘게 짤라서 관리하게 쉽게 만들수 있음 노드는 자바스크립트 코드를 모듈로 만들 수 있음 모듈: 특정한 기능을 하는 함수나 변수들의 집합 모듈로 만들면 여러 프로그램에서 재사용 가능 // 각각 다른 파일 const odd = '홀수 입니다.'; const even = '짝수 입니다.'; module.exports = { odd, // key와 값이 같은 경우..

Node.js 2020.12.02

자바스크립트 정리

구조 분해 할당 밑에는 구조 분해 예전과 현재 사용하는 걸 비교해보았다. // 이러한 상황이 많이 옴 const example = { a:123, b: {c:135, d: 146 } const a = example.a; const b = example.b.d; // 그래서 새로운 문법이 나옴 const { a, b: { d } } = example; // 기존 arr = [1, 2, 3, 4, 5] const x = arr[0] const y = arr[1] const z = arr[4] // 지금 const [x, y, .... , z] = arr; 객체를 사용하고 있을 때 만약 this를 사용하고 있으면 구조 분해하면 this를 사용하고 있는 쪽에서 문제가 발생하니 사용하면 안 된다. 클래스 클래스가..

Node.js 2020.12.01

JavaScript 실행과 문법

이걸 이해 할 수 있다면 nodejs의 내부에 돌아가는 형식을 전부 이해한 것이다. 1. 호출 스택 : 시작하자마자 anonymous가 생성되고 그 후 호출되는 함수가 쌓인다. 2. 백그라운드 : 특정한 함수들을 따로 처리하는데 멀티쓰레드 형식으로 돌아가기 때문에 호출이랑 동시에 실행된다. 이벤트 리스너들이 대기하는 공간이다. 3. 태스크 큐 : 이벤트 발생 후 호출되어야 할 콜백 함수들이 순서대로 기다리는 공간이지만 특정 조건의 함수들은 순서를 무시하고 먼저 실행 될 수 있다. 문법 1. var 이전에는 var로 변수를 선언했다. - var은 함수 스코프이다. 2. ES2015 이후에는 const , let로 변수를 선언한다. - 이 두개는 블록 스코프이다. 이게 무슨 소리인지 알아보자. // var ..

Node.js 2020.11.29

노드란

Node.jsⓇ는 크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임이다. (즉 자바스크립트 실행기) - 서버의 역할도 수행할 수 있는 자바스크립트 런타임 - 노드로 자바스크립트로 작성된 서버를 실행할 수 있음. - 서버 실행을 위해 필요한 http/https/http2 모듈을 제공 이 세상에 웹개발자가 제일 많기 때문에 가장 많이 쓰는 언어가 자바스크립트이다. 노드와 자바스크립트가 뜬 이유 -> 비동기 I/O 프로그래밍 즉 libuv 때문에 특성 1. 이벤트 기반 이벤트 리스너에 콜백함수 등록 -> 시스템에서 이벤트 발생 -> 이벤트 리스너에서 등록된 콜백 함수 호출 2. 논블로킹 I/O ( 비동기라고 생각해도 됨) 오래 걸리는 함수를 백그라운드로 보내서 다음 코드가 먼저 실행되게 하고, 나중에..

Node.js 2020.11.29