오늘도 삽질중

Node.js(수정중) 본문

[Linux] 기초

Node.js(수정중)

해빋 2021. 9. 1. 19:35

들어가기전)

JavaScript 런타임(runtime)에 대해 학습을 한다.  우리는 일상생활에서 이미 JavaScript 런타임을 이용하고 있는데 크롬, 사파리 같은 웹 브라우저가 바로 JavaScript 런타임이다.

런타임이란 프로그래밍 언어가 구동되는 환경을 의미한다. 어떤 프로그램이 동작할 때, 프로그램이 동작하는 곳(프로그래밍 언어가 실행되는 환경)을 의미한다.  이 때, 실행되는 곳이 바로 런타임이다. 과거에는 웹 브라우저가 대표적인  JavaScript런타임이다. 이전에는 웹 브라우저밖에 없었는데 node.js라는 새로운 JavaScript런타임의 등장으로, JavaScript가 브라우저가 아닌곳에서 실행 될 수 있게 되었다. node.js의 등장 이후, JavaScript를 이용하여 웹 페이지 뿐만 아니라 서버와 같은 다른 프로그램을 만들 수 있게 되었다. 

 

<목차>

  • nvm, Nodejs, npm을 설치하고, 버전을 확인
  • 명령어 node를 이용해 JavaScript 파일을 실행

nvm & node.js

nvm(Node Version Manager): 다양한 node version을 설치하고 관리 할 수 있는 프로그램.   nvm 역시 하나의 프로그램이므로 설치해야한다. 

https://github.com/nvm-sh/nvm

1. 위의 사이트(공식문서) 에 들어가 node.js를 설치한다.

 

 

수정

 

 

 


👊   package.json :    프로젝트(패키지) 전반에 관한 정보가 들어있는곳

                                             npm 모듈을 활용하기 위해 해당 모듈에 대한 정보를 담은 파일

하나의 프로그래램은 다양한 모듈이 합쳐저 만들어진다. 개발을 할 때 모든것을 다 만들어서 쓰지는 않는다. 예시로 우리가 자동차를 만든다고 가정해보자. 만약 자동차를 만들때 바퀴가 발명되어 있다면 바퀴 만드는 설명서를 가져다쓰지 바퀴만드는 법을 새로 창조해내진 않는다. 이렇듯 개발도 누군가가 먼저 잘 만들어놓은 검증된 코드(모듈)을 가져다가 사용한다. 남이 만들어 놓은 모듈을 node.js에서 npm 모듈이라는 이름으로 부르고 이에 대한 정보를 담아두는 곳이 바로 package.json이다. 

 

👊    npm(Node Package Manager) : node.js 생태계의 패키지 매니저.

                                                                           필요한 모듈을 다운로드 할 수 있는 , 모듈 스토어이다.

- node.js 환경에서 외부 라이브러리를 다운받기 위해 다양한 방법들이 있지만 대표적으로 npm을 사용한다. npm은 일종의 앱스토어라 볼 수 있다. 리눅스 패키지 매니저 -apt, macOS - brew, node.js-npm

 

👊     package.json의 장점 

프로젝트 코드를 전달 할때 포함하고 있는 모든 모듈을 다 전달하지 않아도 된다.  즉 필요한 모듈은 package.json에 적어놨으니까 직접 다운을 받아 사용하면 된다.

프로젝트 파일을 열면 node_modules는 없고, package.json만 있을거고 필요하다고 생각되는 모듈을 npm을 이용해 다운을 받으면 된다.  

npm install

npm install 명령어를 입력하면, package.json에서 필요하다고 하는 모듈을 다운받을 수 있다. npm install을 하면 node_modules디렉토리가 생긴다. 

출처: 코드스테이츠

👊  devDependencies   

- 그냥 모듈이라고 생각해도 좋다. 프로젝트를 개발하는 환경에서 필요한 모듈들이 무엇인지가 적혀있다. 개발이나 실행에 해당 모듈을 "의존"한다고 해서 "의존성(depedndecy)"이라 부른다. Json형식에서, 키에 적힌것은 모듈 이름, 값은 버전이다.

사진추가

'[Linux] 기초' 카테고리의 다른 글

CLI 기본 명령어(수정중)  (0) 2021.09.01
Comments