Jay's Cookbook
Menu
  • Tags
  • Categories
  • Projects
Computer Science
OS
Network
Data Structure
Algorithm
Language
Code Architecture
Python
Javascript
Typescript
Java
Backend
Backend Theory
TypeORM
Node.js
NestJS
FastAPI
Frontend
HTML/CSS
React
Next.js
Data Engineering
DE Theory
MySQL
MongoDB
Elastic
Redis
Kafka
Spark
Airflow
AI
Basic
Pytorch
NLP
Computer Vision
Data Analytics
Statistics
Pandas
Matplotlib
DevOps
Git
Docker
Kubernetes
AWS
[Node.js] NPM
backend
nodejs

[Node.js] NPM

Jay Kim
Jay Kim 22 Feb 2024
[Node.js] Express 사용하기 [Node.js] 내부 들여다 보기

Table of Contents

  • npm
  • npm 명령어
    • npm init
    • npm install (또는 npm i)
    • npm update
    • npm uninstall
    • npm list
  • Semver (Semantic Versioning)
  • npx

npm

  • npm(Node Package Manager)은 Node.js 생태계의 패키지 관리자입니다.
  • 2009년에 처음 출시된 이후, Node.js와 JavaScript 커뮤니티에서 없어서는 안 될 중요한 도구로 자리 잡았습니다.
  • npm은 전 세계 개발자들이 만든 패키지와 라이브러리를 쉽게 설치하고 관리할 수 있게 해 주며, 개발 환경 설정과 프로젝트 의존성 관리를 단순화합니다.
  • 현재는 오픈소스 패키지와 유료 패키지를 제공하며, npm registry에 수백만 개의 패키지가 등록되어 있습니다.

npm 명령어

  • npm은 다양한 명령어를 통해 패키지와 프로젝트 관리를 쉽게 할 수 있습니다. 몇 가지 필수적인 명령어를 살펴보겠습니다.

npm init

  • 새 프로젝트를 시작할 때 사용합니다.
  • npm init은 프로젝트의 package.json 파일을 생성하고, 프로젝트의 기본 정보를 설정할 수 있는 대화형 모드를 실행합니다.
  • npm init -y를 사용하면 기본값으로 package.json을 빠르게 생성합니다.

npm install (또는 npm i)

  • 패키지를 설치할 때 사용합니다.
  • 예를 들어 npm install express를 입력하면, express 라이브러리가 프로젝트에 설치됩니다.
  • --save 플래그는 이제 기본값으로 적용되며, 설치된 패키지는 package.json의 dependencies 섹션에 추가됩니다.
  • --save-dev는 개발 의존성으로 설치합니다. 예를 들어, 테스트 라이브러리는 보통 개발 의존성에 추가됩니다.

npm update

  • 프로젝트의 모든 패키지를 최신 버전으로 업데이트합니다.
  • package.json의 버전 범위 안에서 업데이트를 적용하므로, 패키지가 메이저 업데이트로 인해 큰 변경이 발생하는 것을 방지할 수 있습니다.

npm uninstall

  • 패키지를 제거합니다.
  • npm uninstall package-name으로 설치된 특정 패키지를 삭제할 수 있습니다.

npm list

  • 현재 프로젝트에 설치된 모든 패키지와 버전을 트리 구조로 표시합니다.
  • 프로젝트 의존성의 구조를 한눈에 확인할 수 있어 유용합니다.

Semver (Semantic Versioning)

  • npm은 Semver (Semantic Versioning)라는 버전 관리 규칙을 따릅니다.
  • Semver는 주 버전(major), 부 버전(minor), 패치 버전(patch) 세 가지 숫자로 버전을 구성합니다.
    • 주 버전 (Major): 이전 버전과 호환되지 않는 큰 변경이 있을 때 업데이트됩니다. 예를 들어, 2.0.0에서 3.0.0으로 변경 시 기존 코드와 호환되지 않을 수 있습니다.
    • 부 버전 (Minor): 새로운 기능이 추가되지만 기존과 호환이 유지될 때 업데이트됩니다. 2.1.0에서 2.2.0으로 변경하는 경우입니다.
    • 패치 버전 (Patch): 버그 수정이나 작은 변경이 있을 때 업데이트됩니다. 예를 들어, 2.1.1에서 2.1.2로 변경됩니다.
  • npm에서는 Semver를 사용하여 버전 범위를 설정할 수 있습니다:
    • ^: 부 버전과 패치 버전의 변경을 허용합니다 (예: ^1.2.3).
    • ~: 패치 버전의 변경만 허용합니다 (예: ~1.2.3).
    • *: 가능한 모든 버전을 허용합니다.
    • 이를 통해 특정 버전 범위 내에서 안전하게 의존성을 관리할 수 있습니다.

npx

  • npx는 npm에서 패키지를 설치하지 않고도 명령어를 실행할 수 있도록 해 주는 도구입니다.
  • npm 5.2.0 버전부터 기본적으로 포함되어 있으며, 일회성 패키지 실행이나 CLI 도구를 사용할 때 유용합니다.
  • 예를 들어, npx create-react-app my-app 명령을 사용하면, create-react-app 패키지를 프로젝트에 설치하지 않고도 즉시 실행하여 React 앱을 생성할 수 있습니다. npx는 로컬에 없는 패키지의 경우 자동으로 다운로드하여 실행하고, 이후에는 삭제합니다.
  • 주요 용도
    • 일회성 명령 실행: 특정 작업을 위해 패키지를 설치할 필요 없이 바로 실행할 수 있습니다.
    • 버전 관리가 필요한 패키지 실행: 특정 버전의 패키지를 지정해서 실행할 수 있습니다.
[Node.js] Express 사용하기 [Node.js] 내부 들여다 보기

You may also like

See all nodejs
24 Feb 2024 [Node.js] 버퍼와 스트림
backend
nodejs

[Node.js] 버퍼와 스트림

23 Feb 2024 [Node.js] 내부 들여다 보기
backend
nodejs

[Node.js] 내부 들여다 보기

25 Jan 2024 [Node.js] Express 사용하기
backend
nodejs

[Node.js] Express 사용하기

Jay Kim

Jay Kim

Web development, data engineering for human for the Earth. I share posts, free resources and inspiration.

Rest
Lifestyle
Hobby
Hobby
Hobby
Hobby
2025 © Jay's Cookbook. Crafted & Designed by Artem Sheludko.