(SEB_FE) Section1 Unit7 [Linux/Git] 기초 <Node.js>

PYM·2023년 2월 24일
0

(SEB_FE) SECTION1

목록 보기
27/38
post-thumbnail
  1. nvm, Node.js, npm을 설치하고, 버전을 확인할 수 있다.
  2. 명령어 node를 이용해 JavaScript 파일을 Node.js 런타임에서 실행할 수 있다.
  3. 과제 시작 전 package.json 파일을 확인하고, npm install을 사용할 수 있다.

JavaScript 런타임(runtime)중 하나인 Node.js

  • 프로그래밍 언어가 구동되는 환경, 즉 어떤 프로그램이 동작할 때, 프로그램이 동작하는 곳이 바로 런타임

  • 크롬, 사파리와 같은 웹 브라우저가 대표적인 JavaScript 런타임
    ➡️ 그래서 JavaScript의 주된 용도는 웹 페이지를 구성하는 것

  • BUT Node.js라는 새로운 JavaScript 런타임이 등장으로
    웹 브라우저가 아닌 곳에서도 JavaScript를 실행될 수 있게 됨.
    ➡️ JavaScript를 통해 웹 페이지를 구성하는 것을 넘어 서버를 구축하는 등 활용폭이 크게 확장


⭐ nvm(Node Version Manager) 간단 사용법

node 12.18.3 버전에서 짠 코드가 잘 동작하는데, Node.js 14.15.5 버전에서는 에러가 생기는 경우가 있음
➡ 이 경우, 과거에 작성한 코드가 정상적인지 확인하기 위해 Node.js 12.18.3 버전이 必

➡ 가장 빠른 방법은 설치된 Node.js를 지우고 다시 설치하는 방법
하지만 버전이 다른 경우마다 삭제 후 해당 버전을 설치해야 한다면, 실제 작업하는 환경에서 코드에 집중하지 못해 생산성이 떨어진다.

이런 문제를 nvm(Node Version Manager)이 해결해 줌

nvm install 12.18.3

이렇게 하면 이미 설치된 버전을 삭제하지 않고, 특정 버전의 Node.js 설치할 수 있다!

사용 중인 Node.js version을 다른 버전으로 변경하고 싶을 때에는 아래의 명령어를 입력하자.

nvm use [버전 넘버]  # 예를 들어, nvm use 12.18.3,  nvm use 14.15.5

⭐ package.json 생성하기

  • 새로운 package.json 파일을 생성하기 위해서는 npm init 명령어를 입력
  • 그럼 기본 정보를 차례로 작성하도록 한다.

위 사진은 기본값!

  • 생성된 package.json 역시 cat으로 실행하면 된다.

⭐ Package.json이 대체 뭔데?

  • npm 모듈을 활용하기 위해 해당 모듈에 대한 정보를 담은 파일
    즉, 프로젝트 전반에 관한 정보가 들어있다

  • npm(Node Package Manager)이란?
    ➡ 리눅스의 패키지 매니저가 apt이듯, node.js 생태계의 패키지 매니저
    ➡ 일종의 앱스토어. 필요한 모듈을 다운로드하는, 모듈들이 모여있는 모듈 스토어

  • package.json에는 이 프로그램을 실행시키기 위해 필요한 모듈들이 무엇인지, 프로그램을 실행시키는 방법, 프로그램을 테스트하는 방법 등이 명시되어 있다.

  • 이 프로그램을 실행시키기 위해 필요한 실제 모듈은 따로 node_modules이라는 폴더에 저장된다! package.json에는 어떤 모듈인지만 적혀 있다.(즉, 전자제품을 보러 갔을 때 제품 카탈로그)

  • 프로젝트 코드를 넘겨줄 때, "우리 코드는 여기 있고, 필요한 모듈은 package.json에 적어놨으니 네가 직접 다운받아서 쓰면 돼" 라고 하면 되는 것!
    ➡ 사용하는 사람이 직접 다운로드하라고 하면 된다.(모듈까지 다 보내주는건 파일도 너무 많고 필요도 없음) 즉, 우리는 무엇이 필요한지만 알려주자.

  • npm install 명령어를 입력하면, package.json에서 필요하다고 하는 모듈을 다운로드 가능! (npm i도 ok)


⭐ package.json에 적힌 정보들

💫 devDependencies

{
  "devDependencies": {
    "@mochajs/json-file-reporter": "^1.2.1",
    "chai": "^4.2.0",
    "mocha": "^8.2.0",
    "sinon": "^9.0.3"
  }
}
  • 이 프로젝트를 개발하는 환경에서 필요한 모듈들이 무엇인지가 적혀 있다.
    실제 프로젝트 동작에 직접적으로 영향을 주지 않는 모듈들을 명시
$ npm install mocha --save-dev
  • --save-dev 옵션과 함께 install 실행시 자동으로 devDependencies에 추가됨

💫 dependencies

  • devDependencies와는 다르게,
    이 프로젝트가 돌아가기 위해 반드시 필요한 모듈들이 무엇인지가 적혀 있다.
  • 예를 들어, underscore라든지, React 같은 것
$ npm install react 
$ npm install --save react
  • --save 옵션과 함께 (생략 可) install 실행시 자동으로 dependencies에 추가

  • dependencies가 중요한 이유

    • 내가 만든 프로그램을 나 혼자만 개발하고 사용한다면 큰 문제가 되지 않을 수 있지만, 우리는 대부분 다른 사람과 함께 개발하고 사용하게 된다. 그럼 다른 사람에게 이 프로젝트에 대해 알려주기 위해 사용하는 것이 바로 package.json

💫 scripts 항목

{
  "scripts": {
    "test": "mocha modern-js-koans/*.js --sort",
    "report": "mocha modern-js-koans/*.js --sort --reporter @mochajs/json-file-reporter",
    "submit": "codestates-submission"
  }
}
  • scripts 항목은 CLI에서 사용 가능한 명령을 기술. 이를 npm script라고 부름.

  • CLI에서 실행할 때에는 npm run [스크립트 이름] 으로 실행

  • 주로 다음과 같은 작업들을 scripts 항목에 기술한다

profile
목표는 "함께 일하고 싶은, 함께 일해서 좋은" Front-end 개발자

0개의 댓글