Node.js_promise, async await

Node.js

V8
- compiles JavaScript directly to native machine code
- 자바스크립트를 기계어로 컴파일한다
runtime
-프로그램이 구동되고 있는 환경
Non-blocking(비동기)
- 다음 함수 실행이 현재 함수의 종료를 기다리지 않음
Blocking(동기)
- 다음 함수 실행이 현재 함수의 종료 이후에 이루어지는 것
I/O model
-input을 주면 output을 반환하는 모델
fs.readFile(path[, options], callback)
- 어떤 파일을 읽어서, (err, data)의 callback을 받을 수 있음 => 비동기적으로 실행
path <string> | <Buffer> | <URL> | <integer>
- 파일 이름을 인자로 넘길 수 있음. 4가지 종류의 타입을 넘길 수 있지만, 보통은 문자열로 넘김
http.get(url[, options][, callback])
- client로서 get 요청 가능, server로서 서버 생성 가능
const $ = require('jquery')
scripts
- 설정 된 script 정보
- cli에서 해당 정보를 실행
- ex. npm start
dev-dependency
- 프로젝트와 관계 없는, 개발 만을 위한 dependency
- ex. --dev 옵셥을 줘서 등록
dependency
- 직접 production과 관계있는 library
- npm --save 옵션 주기
- 설치할 때 꼭 SAVE => 만약에 안하게 된다면 협업에서 문제 발생
- 보통 git clone 후 npm install(package.json에 있는 dependency 바탕으로 설치하게 됨) 실제 node module은 git 상에서 포함 시키지 않음
- 만약 dependency에 등록되지 않고 사용되고 있으면, 코드에서 해당 모듈을 쓰지만, npm install로는 설치가 되지 않아 error가 발생함
nodemon
- 일회성이 아니라 저장사항을 반영해서 즉각적으로 서버 실행
- ex. nodemon download한 후
"scripts": {
"start": "nodemon index.js."},
Debugging
- scripts에 --inspect을 추가한 후,
"scripts": {
"start": "node(nodemon) --inspect index.js."},
- npm start하고 chrome 열기
- --inspect-brk => 시작하자마자, breakpoint가 잡혀있음
- 아니면 vsc에서 breakpoint잡고 debug

Consistency achieves everything https://github.com/paigekim29