Ubuntu에서 npm 사용 방법: 설치, 기본 명령 및 문제 해결 가이드

.## 1. Introduction

目次

Why Use npm on Ubuntu

프론트엔드와 백엔드 개발 모두에 필수적인 도구 중 하나가 npm (Node Package Manager) 입니다. npm은 Node.js의 패키지 관리 도구로 널리 사용되며, 개발자가 JavaScript 라이브러리와 도구를 손쉽게 설치하고 관리할 수 있게 해줍니다.

Ubuntu에서 npm을 사용하면 Linux의 가벼운 성능과 유연한 패키지 관리를 활용하면서 개발 효율성을 크게 높일 수 있습니다. Ubuntu는 방대한 개발자 커뮤니티가 지원하는 배포판으로, 서버 운영부터 로컬 개발 환경까지 다양한 용도로 널리 사용됩니다.

특히 Vue.js, React, Next.js와 같은 Node.js 기반 프레임워크를 사용할 때 npm으로 패키지를 관리하는 것이 표준적인 접근 방식입니다. Ubuntu에 이러한 도구들을 설정하면 Windows나 macOS에 비해 문제 발생이 적은 안정적인 개발 환경을 구축할 수 있습니다.

Purpose of This Article

이 문서는 Ubuntu에 npm을 설치하고 기본 사용법을 마스터하기 위한 단계별 가이드를 제공합니다. 특히 다음과 같은 독자를 대상으로 합니다:

  • Ubuntu에 처음 접하는 개발자
  • Node.js 또는 npm 설정에 어려움을 겪는 사람
  • 체계적으로 npm을 배우고 싶은 모든 사람

여러 설치 방법을 소개하고 각각의 특징, 장점, 단점을 설명합니다. 또한 일반적인 오류, 문제 해결 팁, 유용한 명령어 등을 다루어 독자가 Ubuntu에서 npm을 원활히 사용할 수 있도록 돕습니다.

2. Installing Node.js and npm on Ubuntu

Ubuntu에서 npm을 사용하려면 먼저 Node.js를 설치해야 합니다. npm은 Node.js에 포함되어 있기 때문에 Node.js를 설치하면 자동으로 npm도 사용할 수 있게 됩니다.

Ubuntu에 Node.js와 npm을 설치하는 주요 방법은 세 가지이며, 각 방법마다 특성이 다르므로 자신의 개발 스타일과 목적에 가장 적합한 방법을 선택하는 것이 중요합니다.

Method 1: Using the Official Ubuntu Repository

Steps

Node.js는 Ubuntu 표준 저장소에 포함되어 있습니다. 가장 간단하고 초보자에게 친숙한 방법입니다.

sudo apt update
sudo apt install nodejs npm

설치가 완료되면 다음 명령어로 버전을 확인할 수 있습니다:

node -v
npm -v

Advantages

  • 이해하기 쉬운 간단한 명령어
  • Ubuntu에서 제공하는 안정적인 버전

Disadvantages

  • Node.js와 npm 버전이 오래된 경우가 많아 최신 기능을 사용할 수 없을 수 있음

Method 2: Using the NodeSource PPA

NodeSource 저장소를 이용하면 공식 Node.js 지원에 가깝게 최신 버전의 Node.js와 npm을 설치할 수 있습니다.

Steps (Example: Installing Node.js 18.x)

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs

npm은 Node.js와 함께 자동으로 설치됩니다.

Advantages

  • 비교적 최신이면서도 안정적인 버전 제공
  • Ubuntu와의 호환성이 좋고 설치가 간편

Disadvantages

  • 다른 PPA와 마찬가지로 의존성 관리가 필요할 수 있음

Method 3: Using nvm (Node Version Manager)

여러 버전의 Node.js를 자유롭게 전환하고 싶다면 nvm이 가장 유연하고 강력한 옵션입니다.

Steps

먼저 nvm을 설치합니다:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

그런 다음 쉘을 재로드하고 nvm을 사용해 Node.js를 설치합니다:

source ~/.bashrc  # or ~/.zshrc
nvm install 18
nvm use 18

npm은 Node.js와 함께 자동으로 설치됩니다.

Advantages

  • Node.js 버전을 자유롭게 전환 가능
  • 프로젝트별로 적절한 버전 지정 가능
  • 시스템 전역에 영향을 주지 않아 안전

Disadvantages

  • 다른 방법에 비해 설정이 다소 복잡함
  • 쉘 설정 파일을 편집해야 함

Which Method Should You Choose?

MethodDifficultyVersion FreshnessFlexibilityRecommended For
Official Repository★☆☆△ (Older)×Beginners, first-time users
NodeSource★★☆○ (Relatively new)General developers
nvm★★★◎ (Freely selectable)Advanced users, multi-project workflows

In general, nvm은 Ubuntu에서 장기 npm 개발을 위해 가장 권장되는 옵션입니다. 하지만 빠르고 간단한 설정을 원한다면 NodeSource PPA를 사용하는 것도 좋은 선택입니다.

3. 기본 npm 사용법

Once Node.js와 npm이 Ubuntu에 설치되면, npm을 사용해 패키지를 관리할 수 있습니다. npm은 JavaScript 패키지를 설치, 업데이트 및 제거하는 강력한 도구입니다.

이 섹션에서는 자주 사용되는 npm 명령어와 기본 작업을 소개합니다.

패키지 설치

로컬 설치

특정 프로젝트 내에서만 사용되는 패키지는 로컬로 설치해야 합니다. 이것이 표준적인 접근 방식입니다. 패키지는 node_modules 디렉터리에 설치되고 package.json에 기록됩니다.

npm install package-name

예시: axios 설치

npm install axios

동일 프로젝트 내의 스크립트만 로컬에 설치된 패키지를 사용할 수 있습니다.

전역 설치

CLI 유틸리티와 같이 시스템 전체에서 사용되는 도구는 전역으로 설치해야 합니다.

npm install -g package-name

예시: http-server를 전역으로 설치

sudo npm install -g http-server

Ubuntu에서는 -g 옵션을 사용할 때 sudo가 필요할 수 있습니다.

패키지 제거

로컬 패키지 제거

npm uninstall package-name

전역 패키지 제거

sudo npm uninstall -g package-name

패키지 업데이트

특정 패키지 업데이트

npm update package-name

모든 의존성 업데이트

npm update

업데이트는 package.json에 지정된 버전 범위 내에서 적용되므로 버전 제약에 유의하세요.

개발 의존성 설치 (–save-dev)

테스트나 빌드 도구와 같이 개발 전용 패키지는 --save-dev 옵션을 사용해 설치해야 합니다.

npm install --save-dev package-name

예시: jest를 개발 의존성으로 설치

npm install --save-dev jest

이렇게 하면 패키지가 package.jsondevDependencies에 기록됩니다.

설치된 패키지 목록 보기

로컬 패키지 목록

npm list

전역 패키지 목록

npm list -g --depth=0

--depth=0 옵션을 사용하면 최상위 패키지만 표시되어 출력이 더 읽기 쉬워집니다.

package.json으로 의존성 관리

package.json 파일은 npm 기반 프로젝트의 핵심 구성 요소입니다. 패키지 이름, 버전, 스크립트 및 전체 프로젝트 설정을 기록합니다.

다음과 같이 생성할 수 있습니다:

npm init

기본값으로 간소화된 설정을 원한다면:

npm init -y

4. 일반적인 문제와 해결책

Ubuntu에서 npm을 사용할 때 오류나 예상치 못한 동작이 발생할 수 있습니다. 이 섹션에서는 일반적인 문제와 해결 방법을 소개합니다.

권한 오류

증상

EACCES: permission denied

원인

npm이 패키지를 설치하려는 디렉터리에 현재 사용자가 쓰기 권한이 없을 때 발생합니다. Ubuntu에서는 /usr/lib/node_modules와 같은 시스템 디렉터리에 쓰려면 sudo가 필요합니다.

해결책

  • sudo로 실행:
    sudo npm install -g package-name
    
  • 또는 전역 설치 디렉터리를 사용자가 소유한 경로로 변경:
    mkdir ~/.npm-global
    npm config set prefix '~/.npm-global'
    

~/.bashrc 또는 ~/.profile에 다음을 추가합니다:

export PATH="$HOME/.npm-global/bin:$PATH"

변경 사항을 적용합니다:

source ~/.bashrc

npm 명령어를 찾을 수 없음

증상

command not found: npm

원인

  • Node.js 또는 npm 설치 실패
  • PATH 환경 변수가 설정되지 않음

해결책

경로를 확인합니다:

which npm

아무 것도 반환되지 않으면 재설치하거나 PATH 설정을 확인하세요. nvm을 사용하는 경우, 셸 설정 파일에 초기화 코드가 포함되어 있는지 확인합니다:

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

패키지 설치 실패 또는 버전 충돌

증상

  • 패키지 설치 시 버전 충돌
  • npm install 중 다수의 경고 발생

해결 방법

npm install package-name@latest
npm ls package-name
npm install --legacy-peer-deps
rm -rf node_modules package-lock.json
npm install

유용한 디버깅 명령어

  • npm doctor
    npm doctor
    
  • npm audit
    npm audit
    npm audit fix
    

5. 자주 묻는 질문 (FAQ)

Q1. Ubuntu에서 npm을 최신 버전으로 업데이트하려면 어떻게 하나요?

A1.

sudo npm install -g npm@latest

nvm을 사용 중이라면 sudo가 필요하지 않습니다.

Q2. 전역 설치와 로컬 설치의 차이점은 무엇인가요?

A2.

  • 로컬 설치 : node_modules에 저장되는 프로젝트별 종속성
  • 전역 설치 : 시스템 전체 CLI 도구, 종종 sudo가 필요함

Q3. nvm을 사용하는 이점은 무엇인가요?

A3.

nvm은 여러 Node.js 버전 간에 안전하고 효율적으로 전환할 수 있게 해주며, 다중 프로젝트 개발에 이상적입니다.

Q4. npm 종속성이 깨지면 어떻게 해야 하나요?

A4.

rm -rf node_modules package-lock.json
npm install

Q5. npm WARN과 audit 메시지는 문제가 되나요?

A5.

경고는 치명적이지 않지만 잠재적 문제를 나타냅니다. 보안 관련 경고의 경우 다음을 시도할 수 있습니다:

npm audit fix

Q6. Ubuntu에서 npm으로 무엇을 만들 수 있나요?

A6.

  • 프론트엔드 프레임워크 (React, Vue, Svelte)
  • 정적 사이트 생성기 (Next.js, Nuxt)
  • 백엔드 애플리케이션 (Express, NestJS)
  • CLI 도구
  • 테스트 환경

6. 결론: Ubuntu에서 npm 마스터하기

이 기사는 Ubuntu에서 npm을 설치하고 사용하는 기본 사항을 다루었으며, 설정부터 문제 해결까지를 다룹니다.

가장 중요한 단계는 직접 실습하는 것입니다. 명령어를 실행하고 오류 메시지를 이해함으로써 개발자로서의 기술을 꾸준히 향상시킬 수 있습니다.

이로써 Ubuntu에서 npm을 사용하는 완전한 가이드가 마무리됩니다. 더 효율적이고 강력한 개발 환경 구축에 도움이 되기를 바랍니다.