[7주차] Node.js와 MongoDB 1 - NPM과 모듈

minLuna·2023년 4월 16일
0

엘리스 AI트랙 7기

목록 보기
42/62

본 자료는 박민 코치님의 자료와 Elice 플랫폼의 자료를 사용하여 정리하였습니다.

NPM 이해하기

NPM이란?

  • Node Package Manager
  • Node.js 프로젝트를 관리하는 필수적인 도구
  • 온라인 저장소 + 커맨드라인 도구

NPM 온라인 저장소

  • 수많은 오픈소스 라이브러리와 도구들이 업로드되는 저장소
  • 필요한 라이브러리나 도구를 손쉽게 검색 가능
  • Node.js의 인기로, 거대한 생태계를 보유

커맨드라인 도구

  • 프로젝트 관리를 위한 다양한 명령어를 제공

NPM 사용해보기

프로젝트 생성하기

  1. npm init 입력
  2. 몇 번의 질문 후 package.json 파일 생성
    \rarr Node.js 프로젝트가 된다.

package.json 파일이란?

  • 프로젝트 관련 정보들이 저장되는 파일
  • 이 파일을 직접 수정하거나 npm 명령어를 사용하여 프로젝트 정보를 수정할 수 있다.
  • 구성 요소
    • version - 프로젝트의 버전
    • name - 프로젝트의 이름
    • description - 프로젝트 설명
    • scripts - npm run [script_name]으로 실행할 수 있는 사용자 작성 스크립트
    • dependencies - 의존성 패키지들
    • devDependencies - 개발환경에서만 사용하는 의존성 패키지들

라이브러리란?

  • 특정기능을 수행하는 코드의 묶음
  • 직접 작성하지 않고, 다른 사람이 구현한 것을 사용하는 방법
  • Node.js에서는 패키지라고도 부른다.

npm install 명령어

  • 프로젝트 의존성을 관리
  • 의존성 추가, 의존성 내려받기, 개발용 의존성 추가, 전역 패키지 추가

의존성 추가하기

npm install [package_name]

  • 필요한 패키지를 프로젝트에 추가
  • 추가된 패키지는 package.json의 dependencies 안에 추가되며, node_modules 디렉토리에 저장된다.

배포전까지만 사용한 개발용 의존성 추가하기

npm install [package_name] --save-dev

프로젝트에 의존성 내려받기

npm install

  • package.json 파일에 정의된 패키지들을 추가

의존성 버전 표기법

npm install [package_name]@[version]

package-lock.json 파일이란?

  • 설치된 의존성의 버전을 고정

전역 패키지 추가

npm install [package_name] --global

의존성 삭제하기

npm remove [package_name]

NPX

NPX란?

  • npm 패키지를 설치하지 않고 사용할 수 있게 해주는 도구

NPX로 Node.js 버전별로 실행하기

npx node@12 index.js
npx node@14 index.js

Node.js의 모듈

모듈이란?

  • 프로젝트가 커지면 기능에 맞게 코드를 분리하는 것이 중요
  • 모듈은 코드를 분리하기 위한 방법 (재사용할 코드를 내보내는 방법)
  • 모듈의 모음은 패키지

기본제공 모듈

  • console
  • process
  • fs
  • http 등등

모듈의 작성과 사용

모듈 내보내기

module.exports = name; # 변수와 함수 둘 다 가능
module.exports = {name, age}; # 여러개 가능
exports.name = name;

모듈 불러오기

  • include, import와 유사
const dayjs = require("package_name");
const myModule = require("파일 경로"); # json파일도 가능하다.
  • 함수형은 변수에 require하고 변수를 함수처럼 사용

Node.js에서 문법 바꾸기

  • package.json 파일 수정 (CommonJS에서 ESModule로 바꾸기)
    • "author"위에 "type": "module" 입력 후 저장

심화 - ES Module

  • ES6에서 등장한 JavaScript의 공식적인 표준 모듈
  • ES Module \rarr export, import
  • CommonJA \rarr module.exports, require
profile
열심히

0개의 댓글