-
node.js / NVM / NPMconcept/server 2020. 4. 30. 17:15
node.js는?
자바스크립트의 run time 환경이다!
런타임이란? 프로그래밍 언어가 구동되는 환경
: 프로그램
그러니까 쉽게 말하면,
지금까지는 자바스크립트를 크롬 등의 브라우저에서 사용해 왔다.
하지만 브라우저 밖의 상황에서도 유저가 사용할 수 있도록 만든 것이 node.js라는 것!
이게 왜 필요한가?
파일시스템을 다루고, 서버를 만들 때 용이한 것이다.
단순히 run time을 넘어 자바스크립트의 각종 도구들을 이용할 수 있게 도와주는 역할도 한다!
php, jsp, Django, Ruby on rails 가 node.js의 경쟁기술들이라고 할 수 있다.
그래서 이 node.js 를 어떻게 사용하느냐?
먼저, 설치가 필요하다.
설치에 대한 자세한 내용은
https://nodejs.org/ko/download/
다운로드 | Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
를 참고하면 된다.
하지만 NVM이라는 프로그램을 이용해서 node.js를 설치할 수 있으니 일단 보류.
node.js의 사용방법은
vscode에서 newfile.js 파일을 만들어서 코드를 작성한 후,
터미널에서 $ node runNode.js 라고 명령어를 입력하면
터미널 창에 그 코드가 실행된 결과가 나타난다.
node.js가 뭔지는 조금 알겠는데.. NVM은 또 무엇인가?
NVM은 Node Version Manager의 약자
NVM을 통해 간단한 명령어로 Node를 설치하고, 다양한 Node version을 손쉽게 옮겨 다닐 수 있다.
즉, 다양한 Node version를 설치하고 관리할 수 있는 프로그램
NVM을 설치하는 방법은?
$ touch ~/.bash_profile $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash
위의 명령어를 터미널에 입력
이 때 주의할 점
1. 터미널에서 $가 default로 설정되어 있을 수 있으니 주의해서 복사 붙여넣기를 할 것!
2. node.js를 실행하고 싶은 폴더 안에서 설치를 해 주어야 한다!??? 팩트체크 필요
잘 설치되었는지 확인하려면
$ nvm --version
를 입력했을 때, 버전이 잘 나온다면 잘 설치된 것이다.
이제 NVM을 이용해서 Node.js를 설치해보자.
$ nvm install 10.13.0
위의 명령어를 터미널에 입력
잘 설치되었는지 확인하려면
$ node -v
를 입력했을 때, 버전이 잘 나온다면 잘 설치된 것이다.
NPM은 무엇인가?
node.js를 통해 동작하는 패키지들을 관리해주는 프로그램이다.
하나의 프로그램은 수많은 모듈들이 합쳐져서 만들어진다.
이미 만들어져있는 모듈들이 많기 때문에 우리는 프로그래밍을 할 때,
이 모듈(검증된 코드)들을 가져다 쓰기만 하면 된다!
어디서? 바로 NPM에서!
NPM은 Node Package Manager로 일종의 앱스토어라고 볼 수 있다.
필요한 모듈을 다운로드할 수 있는, 모듈들이 모여있는 모듈 스토어라는 것이다.
앞으로 필요한 모듈은 대부분 NPM에서 다운로드해서 사용하면 된다.
여기서 모듈에 대해 조금 더 자세히 알아보고 싶다면
https://opentutorials.org/course/743/4750
모듈 - 생활코딩
프로그램은 작고 단순한 것에서 크고 복잡한 것으로 진화한다. 그 과정에서 코드의 재활용성을 높이고, 유지보수를 쉽게 할 수 있는 다양한 기법들이 사용된다. 그 중의 하나가 코드를 여러개의 파일로 분리하는 것이다. 이를 통해서 얻을 수 있는 효과는 아래와 같다. 자주 사용되는 코드를 별도의 파일로 만들어서 필요할 때마다 재활용할 수 있다. 코드를 개선하면 이를 사용하고 있는 모든 애플리케이션의 동작이 개선된다. 코드 수정 시에 필요한 로직을 빠르게 찾을 수
opentutorials.org
node 모듈을 사용하는 프로젝트에서 npm이라는 키워드는 하나의 명령어처럼 사용되기도 한다.
npm start처럼, 프로젝트를 실행시킬 때 npm 키워드를 사용할 수 있다.
Package.json 이란?
프로그램을 하나 만들었을 때, 어떤 모듈이 필요하고 어떻게 실행시켜야 하는지는 만든 사람만 알 수 있다.
그래서 어떻게 해야 프로그램을 실행시킬 수 있는지,
이걸 실행시키려면 어떤 모듈이 있는지를 알려주는 파일을 따로 만들어준 것이
바로 package.json 이다.
헷갈리면 안될 점은
package.json 안에 모듈이 들어있는 것이 아니라,
어떤 모듈을 다운받으면 되는지 설명만 해주는 책자이다!
즉,
"우리 코드는 여기있고, 필요한 모듈은 package.json에 적어 놨으니 너가 직접 다운받아서 쓰면 돼"
인 격이다.
package.json을 어떻게 사용하느냐?
npm install
위의 명령어를 입력하면, package.json에서 필요하다고 하는 모듈을 다운받는다.
npm install이 완료되면 node_modules 디렉토리가 생긴 걸 확인할 수 있다.
package.json 파일 안에서 구분해야할 것은?
"dependencies": { "react": "^16.8.6", }
"devDependencies": { "jest": "^2.3.0", "eslint" : "^2.0.0" }
위의 두가지
dependencies 와 devDependencies 이다.
dependencies는?
이 프로젝트가 돌아가기위해 반드시 필요한 모듈
devDependencies는?
이 프로젝트를 개발하는 환경에서 필요한 모듈들
ESlint나 testing module 처럼 프로그램 작동에는 영향을 주지 않지만 개발환경에 필요한 모듈
그리고 scripts가 있다.
"scripts": { "test": "jest", "test:example": "jest test-example/", "test:passme": "jest pass-me/", //** 이걸 실행시키고 싶다면? "test:watch": "jest --watch", "lint": "eslint **/*.js --quiet", "submit": "node .travis/submit.js" }
이 파일에서 npm을 실행시키기 위한 명령어를 담아놓은 폴더라고 생각하면 된다.
scripts 폴더가 이렇게 정의되어 있을 때, test:passme를 실행시키고 싶다면
npm run test:passme
라고 key 값을 npm run 뒤에 적어서 터미널창에 입력해주면 value 값이 실행된다!
'concept > server' 카테고리의 다른 글
Server & Node 알고 넘어가야 할 요점 정리 (0) 2020.06.11 Web Architectures 정리 (0) 2020.06.10 node.js (0) 2020.05.25 Browser Security (CORS, XSS, CSRF) (1) 2020.05.24 브라우저, 서버, API, HTTP, Ajax 개념 정리 (0) 2020.05.24