처음 접하는 사람이 보면 말들이 너무 어려운 것 같다.
쉽게 정리하면, Node.js는 Javascript를 컴퓨터에서 실행할 수 있게 하는 Javascript 실행기이다. 확장성 있는 네트워크 어플리케이션~ 이라 하니 서버를 위해서 설계된 플랫폼이라 볼 수 있다. Node.js 관련 키워드로는 단일 스레드(Single Thread), 이벤트 루프(Event Loop) 기반, 비동기 I/O 처리(Non-Blocking I/O) 등이 있지만 Front-end 관점에서는 Chrome V8 Engine 부분만 확실히 체크하면 될 것 같다.
Chrome V8 Engine 참고 >> https://helloinyong.tistory.com/290
Javascript를 Chrome 같은 브라우저에서만 쓰는 것이 아닌 브라우저 밖에서 다양한 용도로 확장하기 위한 것이 바로 Node.js이다. Javascript를 실행시킬 수 있는 곳은 이제 브라우저뿐만 아니라 Node.js 환경에서도 가능하다는 얘기다.
우리는 npm을 이용하여 Javascript 모듈들, 라이브러리를 쉽고 편하게 다운받는다. 이 npm은 Node.js의 기본 패키지 관리자이다. Node.js 없이, npm 없이 혼자 알아서 라이브러리들을 다운을 받아 개발을 한다는 것은 여간 쉬운 일은 아닐거라고 생각한다.
위키백과
npm (노드 패키지 매니저/Node Package Manager)은 자바스크립트 프로그래밍 언어를 위한 패키지 관리자이다. 자바스크립트 런타임 환경 Node.js의 기본 패키지 관리자이다.
명령 줄 클라이언트(npm), 그리고 공개 패키지와 지불 방식의 개인 패키지의 온라인 데이터베이스(npm 레지스트리)로 이루어져 있다.
이 레지스트리는 클라이언트를 통해 접근되며 사용 가능한 패키지들은 npm 웹사이트를 통해 찾아보고 검색할 수 있다. 패키지 관리자와 레지스트리는 npm사에 의해 관리된다.
https://ko.wikipedia.org/wiki/Npm_(%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4)
우리는 웹 개발 시 Node.js를 이용하여 작업 환경을 구성하고, 모듈 같은 것들을 npm에서 편하게 받아서 설치하면 된다. Facebook에서 제공하는 React의 Boilerplate인 'create-react-app' 이 좋은 기준이다.
reference:
https://perfectacle.github.io/2017/06/18/what-is-node-js/
https://geonlee.tistory.com/92
https://ljh86029926.gitbook.io/coding-apple-react/undefined/node.js-npm