어디서든 자주 접하는 개념이지만,
항상 느낌으로만"아 그거....?"
하고 넘어갔던 Node.js가 뭔지 정확히 알아보았다.
사전적 정의로는 확장성 있는 네트워크 애플리케이션개발에 사용되는 소프트웨어 플랫폼.
즉, 노드를 통해 다양한 자바스크립트 애플리케이션을 실행하고, 서버를 실행하는데 제일 많이 사용된다.
JavaScript는 HTML을 조작할 수 있는 작은 기능이었다. 그런데 크롬에서 JavaScript 구동 엔진인 V8을 만들었고, 성능이 뛰어나서브라우저뿐만 아니라 로컬 PC에로 독립시켜 실행시켜줄 수 있는 실행창(런타임)을 만든 것이 Node.js
. 이후 많은 개발자들이 Node.js로 여러가지 PC프로그램들을 만들었다.
JavaScript기반의 프로그래밍 언어로써,
Node.js를 설치하면 터미널 프로그램에서 브라우저 없이 실행 가능
✓ JavaScript 코드를 실행할 수 있는 소프트웨어
✓ Node.js를 알기 위해서는 런타임 환경에 대해서 알고가면 좋다!
📌 Node.js - 코딩애플
📌 Node.js - Hanamon님 블로그
📌 JavaScript 런타임 - Hanamon님 블로그
* 런타임(Runtime): 특정 언어로 만든 프로그램을 실행할 수 있는 환경
* 노드(Node): 간단히 말하자면 컴퓨터 네트워크를 구성하는 기기 1개를 의미
* 싱글스레드: 사전적 의미는 한 가닥의 실, 하나의 프로그램에서 동시에 하나의 코드만 실행 가능함
* 논 블로킹 I/O: I/O작업이 완료될 때까지 중단하지 않고, I/O호출에 대해 즉시 리턴하는 것
* I/O: 입력/출력을 뜻함