Node.js? 자바스크립트 런타임
서버란? 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 or 프로그램
노드란? 자바스크립트 런타임 (=자바스크립트 실행기)
런타임? 특정 언어로 만든 프로그램들을 실행할 수 있는 환경
libuv 라이브러리는 노드의 특성인 이벤트 기반, 논블로킹 I/O 모델을 구현하고 있음
이벤트가 발생할 때 미리 지정 해둔 작업을 수행하는 방식
이벤트 리스너에 콜백 함수를 등록함
- 이벤트 루프 - 이벤트 발생 시 호출할 콜백 함수 관리 및 실행 순서 결정
이전 작업이 완료될 때까지 대기하지 않고 다음 작업 수행
↔ 블로킹? 이전 작업이 끝나야만 다음 작업을 수행
I/O 입력 출력 의미, 파일시스템 접근 및 네트워크를 통한 요청 작업도 I/O의 일종
노드는 I/O 작업을 백그라운드로 넘겨 동시에 처리함
→ 동시에 처리될 수 있는 작업들을 묶어서 넘김