Frontend-Developer라면 JS를 다른 개발언어보다도 빠르게 접하게 됩니다.
JS를 학습하다보면, 반드시 보게 되는게 NPM과 NodeJS를 보게 될 것입니다.
그러다보면, 문득 NodeJS가 뭐지라는 생각이 듭니다.
그렇다고 막상 프론트 친구들에게 물어보면 명확히 알려주는 사람이 잘 없었습니다.
계명대학교 멋사 프론트 개발자분들에게 도움이 되기를 바라며,
제가 최대한 간단명료하게 적어보겠습니다.
NodeJS의 정의
Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임 환경
런타임 환경,
이 말인 즉슨, 우선 NodeJS는 라이브러리나 프레임워크가 아닙니다.
그리고 런타임 환경이라는 단어는,
JS가 돌아가는 환경입니다.
JS가 돌아가는 환경이라는 건,
크롬 브라우저처럼 JS가 런되는 환경을 만들어주는 곳이라는 겁니다.
JS엔진?
크롬에서 개발한 V8이라는 이름을 가진 자바스크립트 엔진입니다.
자바스크립트 엔진은,
자바스크립트 코드를 실행하는 프로그램입니다.
예를 들어
크롬 브라우저에서 V8엔진이 서버로부터 넘어온 리소스들 중 JS파일을 파싱해서
JS가 탑재된 HTML을 만들어주는거죠.
결론
즉,
NodeJS는 자바스크립트를 돌리게끔 해주는 핵심 엔진을 크롬으로부터 분리시켜서 꼭 브라우저가 아니더라도 자바스크립트를 돌릴 수 있게끔 만들어놓은 환경인겁니다.
덕분에 우리가 서버를 JS로 개발할 수 있는겁니다.
자바스크립트는 DOM조작을 위해서 탄생한 언어입니다(때문에 “스크립트”라는 게 붙어있는겁니다).
자바, 파이썬 같은 언어들은 브라우저에서 사용하려고 있는 언어가 아닙니다.
