Node.js 설치 후 기본적인 커맨드 라인 도구인 node와 npm

By | 9월 12, 2025
Node.js 설치 후 기본적인 커맨드 라인 도구인 node와 npm

Node.js 개발의 핵심, nodenpm 명령어 완벽 이해하기

Node.js는 자바스크립트를 웹 브라우저가 아닌 환경에서도 실행할 수 있게 해주는 런타임입니다. Node.js를 설치하면 두 가지 필수적인 명령줄 도구가 함께 제공되는데, 바로 자바스크립트 코드를 실행하는 node와 패키지 관리를 담당하는 npm입니다. 이 두 도구의 기능을 명확히 이해하면 Node.js 개발을 훨씬 효율적으로 할 수 있습니다.


node 명령어: 자바스크립트 코드 실행

node 명령어는 여러분이 작성한 자바스크립트 파일을 직접 구동하는 데 사용됩니다. 이는 Node.js 런타임을 통해 코드를 해석하고 실행하는 역할을 합니다.

1. 자바스크립트 파일 실행

가장 일반적인 node 명령어의 사용법입니다. .js 확장자를 가진 파일을 인수로 넘겨주면, Node.js가 해당 파일을 읽어 실행합니다.

예시 코드 (app.js)

// app.js
console.log("Node.js로 실행된 첫 번째 코드입니다!");
const http = require('http'); // 내장 HTTP 모듈 로드

// 간단한 HTTP 서버 생성
const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello from Node.js Server!\n');
});

const port = 3000;
server.listen(port, () => {
  console.log(`서버가 http://localhost:${port}/ 에서 실행 중입니다.`);
});

위와 같이 작성된 파일을 실행하려면, 터미널에 아래와 같이 입력합니다.

node app.js

이 명령어를 실행하면 Node.js 환경에서 app.js 파일이 구동되며 웹 서버가 시작됩니다.

2. 대화형(REPL) 모드

node 명령어를 단독으로 입력하면 REPL(Read-Eval-Print Loop) 모드로 진입합니다. 이 모드는 마치 계산기처럼 즉석에서 자바스크립트 코드를 입력하고 실행 결과를 바로 확인하는 데 유용합니다. 간단한 함수 테스트, 변수 값 확인, 또는 산술 연산 등에 활용할 수 있습니다.

node
> let message = "안녕하세요?";
undefined
> console.log(message);
안녕하세요?
undefined
> 15 * 3;
45
> function add(a, b) { return a + b; }
undefined
> add(10, 20);
30
> .help // 도움말 보기
> .exit // REPL 모드 종료

3. 버전 확인

현재 시스템에 설치된 Node.js의 버전을 빠르게 확인하고 싶을 때 사용합니다.

node -v
# 출력 예시: v20.10.0

npm 명령어: Node.js 패키지 관리

npm(Node Package Manager)은 Node.js 프로젝트의 의존성(dependencies)을 관리하는 데 필수적인 도구입니다. 전 세계 개발자들이 만든 수많은 오픈 소스 패키지(라이브러리)를 쉽게 설치하고, 업데이트하고, 공유할 수 있게 돕습니다. Node.js를 설치하면 npm도 자동으로 설치됩니다.

package.json 파일의 역할

npm의 핵심은 프로젝트의 “명함” 역할을 하는 package.json 파일입니다. 이 파일은 프로젝트의 이름, 버전, 설명, 그리고 가장 중요한 프로젝트가 의존하는 라이브러리 목록을 정의합니다.

package.json 예시

{
  "name": "my-node-app",
  "version": "1.0.0",
  "description": "Node.js npm 예제 애플리케이션입니다.",
  "main": "index.js",
  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js",
    "test": "jest"
  },
  "dependencies": {
    "express": "^4.18.2",
    "lodash": "^4.17.21"
  },
  "devDependencies": {
    "jest": "^29.7.0",
    "nodemon": "^3.0.1"
  }
}
  • scripts: 자주 사용하는 명령어를 별칭으로 등록하는 섹션입니다. npm run [별칭] 형태로 실행하며, start 명령어는 npm start로 단축할 수 있습니다.
  • dependencies: 프로젝트를 실행하는 데 필수적인 라이브러리 목록입니다. 웹 프레임워크인 express나 유틸리티 라이브러리인 lodash 등이 여기에 포함됩니다.
  • devDependencies: 개발 단계에서만 필요한 라이브러리 목록입니다. 테스트 도구인 jest나 코드 변경을 감지해 서버를 자동 재시작하는 nodemon 같은 도구들이 여기에 속합니다.

자주 사용되는 npm 명령어

  • npm -v (버전 확인): 현재 설치된 npm의 버전을 확인합니다.
npm -v # 출력 예시: 10.2.4
  • npm init (프로젝트 초기화): 새로운 Node.js 프로젝트를 시작할 때 사용합니다. 몇 가지 질문에 답하면 package.json 파일이 자동으로 생성됩니다. 모든 질문에 기본값으로 빠르게 생성하려면 npm init -y 명령어를 사용합니다.
npm init # 또는 npm init -y
  • npm install [패키지명] (패키지 설치): 프로젝트에 필요한 패키지를 설치합니다. 설치된 패키지는 ./node_modules 디렉토리에 저장되며, package.jsondependencies에 자동으로 추가됩니다.
npm install express npm install lodash
  • npm install -D [패키지명] (개발용 패키지 설치): 개발 환경에서만 필요한 패키지를 설치합니다. 이 패키지들은 package.jsondevDependencies에 추가됩니다. -D--save-dev의 줄임말입니다.
npm install -D jest npm install -D nodemon
  • npm install -g [패키지명] (전역 패키지 설치): -g 플래그를 사용하면 패키지를 시스템 전역에 설치하여 어떤 디렉토리에서든 해당 명령어를 사용할 수 있습니다. 주로 CLI(Command Line Interface) 도구를 설치할 때 사용됩니다.
npm install -g pm2 npm install -g create-react-app
  • npm install (모든 의존성 설치): package.json 파일이 있는 프로젝트에서 이 명령어를 실행하면, 파일에 명시된 모든 dependenciesdevDependencies를 한 번에 설치합니다. 다른 개발자가 공유한 프로젝트를 시작할 때 필수적으로 사용됩니다.
# package.json 파일이 있는 디렉토리에서 실행 
npm install
  • npm uninstall [패키지명] (패키지 제거): 설치된 패키지를 삭제하고 package.json에서도 해당 기록을 제거합니다.
npm uninstall express npm uninstall -D jest
  • npm start 또는 npm run [스크립트명] (스크립트 실행): package.jsonscripts 섹션에 정의된 사용자 지정 명령어를 실행합니다. start 스크립트는 npm start로 바로 실행할 수 있으며, 그 외의 스크립트는 npm run [스크립트명] 형태로 실행합니다.
npm start # package.json의 "start" 스크립트 실행 
npm run dev # package.json의 "dev" 스크립트 실행 
npm run test # package.json의 "test" 스크립트 실행

Node.js 개발의 거의 모든 과정에서 이 두 가지 핵심 도구가 활용되므로, 각 명령어의 기능과 역할을 숙지하는 것이 중요합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다