node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임이다.
런타임이란?
프로그래밍 언어가 동작하는 환경
브라우저의 JavaScript엔진에서 동작하는 JavaScript를 브라우저 이외의 환경에서도 동작할 수 있도록하는 실행환경이다.
다양한 플랫폼에 적용할 수 있지만 서버 사이드 애플리케이션 개발에 주로 사용되며, 이에 필요한 모듈, 파일 시스템, HTTP 등 빌트인(built-in, 내장) API를 제공한다.
클라이언트 사이드와 서버 사이드
클라이언트(사용자)측에서 처리하는 것으로 브라우저에서 처리하는 것을 뜻하며, 서버 사이드는 서버(제공자)측에서 처리하는 것으로 클라이언트의 요청을 받아 요청에 대한 내용을 응답하여 전달한다.
non-blocking I/O
A함수가 I/O작업을 호출했을 때 I/O작업이 완료될 때까지 함수의 작업을 중단하지 않고 I/O 호출에 대해 즉시 리턴하고, A함수가 이어서 다른 일을 수행할 수 있도록 하는 방식
- 참고: Richet의 Tech Blog