자바스크립트는 웹 사이트에서 스크립트를 작성하는데 사용 되는 프로그래밍 언어이며 브라우저와 돔등을 다룸으로써 기본적으로 클라이언트 개발을 할 수 있다.
자바스크립트로 는 서버측에 접근하지 못하는데 여기서 노드제이에스를 사용함으로써 브라우저 외부에서 자바스크립트 코드를 실행할 수 있게 해준다.
즉, 노드제이에스는 언어가 아닌 자바스크립트를 실행하는 런타임 환경이며 주로 서버 측에서 사용한다.
node.js에서 비동기식 처리방식은 병렬적으로 수행 되며 클라이언트의 요청을 비동기 방식으로 처리하기 위해 node.js의 비동기처리는 이벤트 방식으로 이루어진다.
이벤트 처리를 하는 이벤트루프는 싱글스레드로 이루어져 있어 요청처리를 하나의 스레드 안에서 처리하는데,
이벤트 호출측엔 비동기 로 처리되지만 처리작업 자체가 오래 걸린다면 전체 서버에 영향을 준다는 치명적인 약점이 있다.
node.js와 브라우저 둘 다 자바스크립트를 기반으로 실행되지만
첫 번째 차이점으로 브라우저는 HTML, CSS, JS 를 실행시켜 화면에 띄워주는 것을 node.js는 서버 개발 환경을 제공하는 차이점이 있다.
두번째로 브라우저는 DOM API를 제공하여 document객체에 접근할 수 있고 node.js는 File 시스템 관련 API가 제공된다.
그 외에도 node.js는 require(), 브라우저는 import를 이용하여 다른 파일의 코드를 불러오는 차이점과
node.js는 버전 환경을 선택할 수 있지만 브라우저는 어떤 브라우저를 사용할지 선택할 수 없다는 차이점이 있다.