vue에 대한 포스팅을 앞두고,
먼저 node.js에 대해 조금 더 알아보려고 한다.
Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다.
즉 웹브라우저 HTML에 종속된 JavaScript(이하 JS)를 외부에서 실행할 수 있는 chrome V8 엔진의 런타임 환경을 제공한다는 말과 같다.
런타임 ?
프로그래밍 언어는 기계가 바로 이해할 수 없기에 고급 언어로 작성된 소스 코드를 기계어로 변환하는 과정을 런타임이라고 한다.
프로그래밍 언어로 작성된 javascript 언어를 컴퓨터가 이해할 수 있는 기계어로 변환시켜주는 역할을 의미한다
정적인 HTML을 동적으로 바꿔주는 기능을 하는 것이 JS인데..
이를 브라우저로 해석하지않고, node.js를 통해 컴퓨터에서 바로 수행할 수 있다.
(node.js가 JS를 쉽게 실행시킬 수 있었기에 JS를 프로그래밍 언어처럼 사용하기 시작했다고 한다..!)
Non-blocking I/O ?
I/O가 동작하면서 요청을 받으면 다음 처리에 요청을 보내 놓고, 다른 작업을 처리하다가 먼저 요청한 작업이 끝나면 이벤트를 받아서 응답을 보내는 것을 의미한다.
반대로 Blocking I/O 방식의 경우 동기적 처리로 다음에 처리해야할 작업들이 현재 작업으로 인해 지연된다.
프로세스 ?
-프로그램의 상태가 메모리 상에서 실행되는 작업의 단위
스레드 ?
-특정 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위
- 프로세스가 운영체제로부터 자원을 할당받은 작업의 단위라면, 스레드는 프로세스가 할당받은 자원을 이용하는 실행의 흐름이다.
싱글스레드 ?
한번에 하나의 일만 수행한다.
현재 요청을 처리한 후에 다음 요청을 처리한다.