Node.js

Sujeong K·2022년 8월 21일
0

Node.js

  • Javascript는 자바스크립트 엔진이 탑재된 브라우저에서만 사용할 수 있었음
  • 웹 브라우저가 아닌 곳에서 Javascript를 사용하기 위해서 만들어진 프로그램
  • 크롬에서 사용하는 JS 엔진인 v8 엔진을 사용하여 만들어짐(v8은 C++로 개발됨)
  • 자바스크립트의 실행 환경. JavaScript's runtime이라고도 함.
    *runtime : 특정 언어로 만든 프로그램들을 실행할 수 있는 환경
  • Node.js를 사용하면 JS로 웹 서버까지도 개발 가능
  • React의 바탕

Terminal

  • Graphic User Interface(GUI) : 아이콘, 커서(마우스), 더블 클릭 등을 이용해서 프로그램을 실행하는 방법
  • Command Line Interface(CLI) : 명령어를 직접 타이핑해서 명령을 내리는 것
  • Terminal : CLI 방식으로 프로그램을 실행할 때 명령어를 입력하는 곳
    GUI 대신 CLI를 사용하는 이유는..?

파일 : calc.js

// 계산 기능을 하는 파일

const add = (a, b) => a + b;
const sub = (a, b) => a - b;

module.exports = {
    moduleName: 'calc module',
    add: add,
    sub: sub,
};
  • module : 어떤 기능을 담당하는 분리된 파일
  • calc.js는 계산 기능을 담당하는 모듈
  • Node.js에서는 module.exports를 사용해서 객체 단위로 모듈을 내보낼 수 있음

파일 : index.js

const calc = require('./calc');
console.log(calc);
  • require : 경로를 지정해서 모듈을 볼러옴. Node.js의 내장 함수.

terminal에 node index.js 입력
실행 결과

{
 moduleName: 'calc module',
 add: [Function: add],
 sub: [Function: sub]
} 
  • module.exportsrequire는 Node.js의 기능!
  • commonJS
    Node.js에서 기본적으로 제공되는 시스템
    모듈을 내보내고 다른 파일에서 받아서 사용하는 모듈 시스템

✍ npm으로 node.js package 만들고 외부 모듈을 실행해보자

npm(Node package manager)

  • 자바스크립트 런타임 환경 Node.js의 기본 패키지 관리 도구
  • 다른 사람이 만든 node.js 모듈을 다운받아서 사용할 수 있도록 도와줌
    package : 누군가 만들어놓은 node.js 모듈

📌 package 초기 설정
터미널에 npm init 입력
설정 후 생성된 package.json : 프로젝트의 정보를 json으로 기록한 환경설정 파일

파일: package.json

{
  "name": "package-example1",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "randomcolor": "^0.6.2"
  }
}
  • main: 패키지를 실행할 때 제일 먼저 실행할 파일
  • scripts: 자주 사용하는 명령을 간단하게 실행시킬 수 있는 명령어들
    terminal에 npm 키워드 를 입력하면 package.json 내의 script에서 해당 명령어에 해당하는 문자열이 terminal에 입력됨 -> 명령 실행

✍ npmjs.com에서 원하는 모듈 다운받아 보기
terminal에 npm i randomcolor 입력
*package.json이 있는 모듈에서 설치해야 함

📌 package.json에 "dependencies"가 추가되며 어떤 package를 설치했는지, 해당 버전의 범위를 기록함

  "dependencies": {
    "randomcolor": "^0.6.2"
    }

📌 node_modules 폴더에 실제 package의 코드, 파일들이 들어옴
📌 package-lock.json에 나의 package에 설치된 외부 package들의 실제 버전이 기록되어있음

commonJS로 require를 이용해서 모듈을 가져올 때

const calc = require('./calc');

경로 없이 package 이름을 적어주면 node_modules에 있는 모듈을 가져옴

const randomColor = require('randomcolor');
profile
차근차근 천천히

0개의 댓글