Node.js를 한문장으로 표현하자면 "Chrome 브라우저의 V8 Javascript 엔진을 탑재한 Server Side 오픈소스 Javascript 런타임" 이다.
여기서 Keyword는 V8 Javascript 엔진을,Server Side, Javascript, 런타임 총 4가지 이다.
자바스크립트를 통하여 2005년 Google Maps의 등장 및 Javascript로 WEB service를 개발하려는 시도가 증가되면서 Javascript의 세력이 확장되자 이를 더욱 빠르게 구동시킬 수 있는 엔진이 필요해졌다. 그래서 나온것이 "V8 Javascript 엔진"이다.
그리고 V8 엔진을 사용할 수 있는 Node.js의 '런타임'은 "실행환경"을 의미하며. Node.js는 웹브라우저가 아닌 브라우저 이외의 환경에서도 동작할 수 있다.
시작은 아래 이미지와 같다.
[웹 브라우저의 interaction]
'apache'라는 web server가 시장을 점유하고 있었지만 client의 트래픽이 증가하면서 구조적인 문제가 발생하면서 Node.js로 활용하여 트래픽을 해소할 수 있는 기술이 필요했는데 이를 Node.js로 활용할 수 있었다.
그리하여 새로 구축된것이 Node.js.
크게 3가지로 얘기할 수 있다.
Node.js는 Javascript 기반으로 된 런타임이기 때문에 Frontend와 Backenddml 기술스택을 통합할 수 있는것이 최대 장점이다.
그리고 빠른 처리속도와 동시 요청을 빠르게 처리할 수 있다는 것이다.
또한 MSA(Micro Servise Architecture)에 적합하다.
Architecture의 방식은 두가지 방법이 있다.
초기의 서비스는 monoilithic 방식으로 구축하지만 빌드업이 될수록 Micro 방식으로 아키텍쳐를 구축하게 된다.