Blocking이란?
- Node.js 프로세스에서 추가 자바스크립트 실행이 자바스크립트가 아닌 작업이 완료될 때까지 기다려야하는 경우, Blocking 작업이 발생하는 동안 이벤트 루프가 자바스크립트를 계속 실행할 수 없기 때문에 발생하는 것

Blocking Function
- JSON.stringfy 함수와 window.alert은 Blocking 함수이다. 해당 작업을 마쳐야 다음 작업을 수행할 수 있다.
Node.js 표준 라이브러리의 모든 I/O 메서드는 non-blocking 및 callback 함수를 허용하는 비동기 버전을 제공한다. 일부 메서드에는 이름이 Sync로 끝나는 blocking 상태도 있다.
ex)
const fs = require('fs);
const data = fs.readFileSync('/file.md');
console.log(data);
next();
- 이렇게 작성을 하면 readFileSync가 완료될 때까지 밑에는 읽지 않고 blocking 상태이다.
blocking 코드와 non-blocking 코드를 함께 쓸 때 발생할 수 있는 문제
- 의도: 1. 파일 읽기 2. 파일 지우기
- 실제: 2. 파일 지우기 1. 파일 읽기
non-blocking I/O란?
- 오래 걸리는 함수를 백그라운드로 보내서 다음 코드가 먼저 실행되게 하고, 나중에 오래 걸리는 함수를 실행