javascript/node.js

NodeJS란? npm이란? (개념정리)

이레몬스터 2023. 11. 27. 15:42

NodeJS

Node.js is a JavaScript runtime built on Chrome’s V8 JavaScript engine
  • 크롬 V8 엔진을 기반으로 한 자바스크립트 런타임 (별도의 실행환경을 구축한 것)
  • 웹 브라우저와 JS
    • 원래 JS는 웹 브라우저에서 interactive한 작업을 하기 위해 고안된 언어임
    • 웹 브라우저에 포함되어서 html, css 등과 같이 섞여서 사용됨
    • 따로 뭘 설치할 필요가 X. 웹 브라우저에 포함되어 있으니까
  • Ryan이라는 사람이 구글 크롬 웹 브라우저에서 JS만 분리해냄
    • 웹 브라우저 이외의 곳에서 사용하고 싶어서
    • 이제 브라우저 바깥에서 python, java 등의 프로그래밍 언어처럼 사용할 수 있게 됨
  • 정확히 JS 프로그래밍 언어를 실행하기 위해서는 이를 해석하고 컴퓨터가 이해할 수 있게 바꿔주는 엔진이 필요
    • 그래서 각 브라우저마다 JS엔진이 존재한다
    • 크롬 브라우저의 JS 엔진인 ‘V8’
      • 아주 성능이 좋은 엔진! 브라우저 점유율에서 크롬이 인터넷 익스플로러를 이기게 된 큰 요인 중 하나
    • 이 ‘V8’을 크롬에서 떼내어 크롬없이도 돌아갈 수 있도록 profit한 것이 바로 NodeJS이다

npm

  • npm은 자바스크립트 언어를 위한 패키지 매니저
  • NodeJS를 쓰려면 npm이 있어야 함
    • npmnodeJS랑 같이 설치됨
    • yarn이라는 패키지 매니저도 있음
      • npm 과 크게 다른 점은 없음. 다만, npm은 기본적으로 nodeJS와 함께 제공될 뿐
  • 많은 경우 npm 명령어를 사용해서 nodeJS를 제어하게 될 것임

+) npm 추가정보

  • npm(Node Packaged Manager)
    • package : 모듈이라고도 불린다. 패키지나 모듈은 프로그램보다는 조금 작은 단위의 기능들을 의미
    • Manager : 관리자
  • npm = Node.js로 만들어진 package(module)을 관리해주는 툴
  • Node.js로 만들어진 모듈을 웹에서 받아서 설치하고 관리해주는 프로그램.
    • 이 모듈들을 필요에 따라 이런저런 모양으로 쌓아서 활용할 수 있음.
    • 또한, 모듈을 활용했다면 이후에 해당 모듈을 만든 개발자가 업데이트를 할 경우 체크해서 알려준다. 즉 버전관리도 쉬워진다는 의미.

출처

https://nomadcoders.co/wetube (노마드코더-유튜브 클론코딩)