티스토리 뷰
목차
웹 개발을 하다 보면 "npm"이라는 단어를 자주 접하게 됩니다. 많은 개발자들이 npm을 사용하고 있지만, 처음 접할 때는 그것이 정확히 무엇인지, 왜 필요한지 잘 모를 수 있습니다.
이번 포스팅에서는 npm이 무엇인지, 왜 중요한지, 그리고 어떻게 사용하는지에 대해 알아보겠습니다.
1. npm이란 무엇인가요?
npm은 Node Package Manager의 약자로, JavaScript와 Node.js 생태계에서 가장 많이 사용되는 패키지 관리자입니다. 간단히 말해, npm은 수천 가지의 오픈 소스 라이브러리와 패키지를 쉽게 설치하고 관리할 수 있는 도구입니다.
npm은 JavaScript 개발자들이 자신이 만든 코드를 다른 개발자들과 공유하거나, 다른 사람들이 만든 유용한 코드를 쉽게 프로젝트에 포함시킬 수 있도록 도와줍니다. 예를 들어, 웹 애플리케이션을 개발할 때 흔히 사용되는 라이브러리인 React나 Express 같은 것들이 모두 npm을 통해 설치됩니다.
2. npm이 중요한 이유
npm이 중요한 이유는 여러 가지가 있지만, 가장 큰 이유는 생산성과 협업에 있습니다. npm을 사용하면 코드를 효율적으로 관리할 수 있고, 다른 개발자들과 협업할 때도 일관된 환경을 유지할 수 있습니다.
1) 패키지 관리의 편리함
npm을 사용하면 외부 라이브러리나 모듈을 프로젝트에 쉽게 추가할 수 있습니다. 또한, 이러한 패키지들의 버전을 관리하고, 필요할 때마다 쉽게 업데이트하거나 삭제할 수 있습니다. 예를 들어, 특정 기능을 구현하기 위해 라이브러리가 필요하다면, 몇 가지 명령어만으로 설치가 가능합니다.
npm install express
위 명령어를 실행하면 Express라는 웹 프레임워크가 프로젝트에 설치되고, 필요한 파일들이 자동으로 구성됩니다. 이처럼 npm은 복잡한 설정 없이도 쉽게 패키지를 관리할 수 있도록 도와줍니다.
2) 의존성 관리
대부분의 프로젝트에서는 여러 개의 외부 라이브러리를 사용하게 됩니다. 이때 중요한 것이 바로 의존성 관리입니다. npm은 package.json 파일을 통해 프로젝트에서 사용하는 모든 패키지와 그 버전을 관리합니다. 덕분에 프로젝트를 다른 사람과 공유하거나, 다른 컴퓨터에서 작업할 때도 일관된 환경을 유지할 수 있습니다.
{
"dependencies": {
"express": "^4.17.1",
"mongoose": "^5.10.0"
}
}
package.json 파일에 정의된 의존성을 바탕으로, npm은 필요한 모든 패키지를 자동으로 설치해줍니다. 이 파일 덕분에 여러 명이 함께 작업하는 프로젝트에서도 버전 충돌이나 의존성 문제를 쉽게 해결할 수 있습니다.
3) 오픈 소스 커뮤니티의 힘
npm은 세계 최대의 오픈 소스 라이브러리 저장소입니다. 수백만 개의 패키지가 npm에 등록되어 있으며, 이를 통해 개발자들은 자신의 코드를 쉽게 공유하고, 다른 사람들의 코드도 쉽게 활용할 수 있습니다. 오픈 소스 커뮤니티 덕분에 우리는 복잡한 기능을 일일이 구현하지 않고도, 이미 검증된 라이브러리를 통해 문제를 해결할 수 있습니다.
4) 스크립트 자동화
npm은 패키지 관리 외에도, 스크립트 자동화 기능을 제공합니다. package.json 파일에 정의된 스크립트를 통해 반복적인 작업을 자동으로 처리할 수 있습니다. 예를 들어, 애플리케이션을 빌드하거나 테스트를 실행하는 스크립트를 정의할 수 있습니다.
{
"scripts": {
"start": "node app.js",
"test": "jest"
}
}
이렇게 정의된 스크립트는 터미널에서 간단한 명령어로 실행할 수 있습니다.
npm start
npm test
이처럼 npm의 스크립트 기능을 활용하면 개발 워크플로우를 더욱 효율적으로 관리할 수 있습니다.
3. npm 사용법
이제 npm을 어떻게 사용하는지 구체적으로 알아보겠습니다. npm을 처음 사용하는 분들도 쉽게 따라할 수 있도록 단계별로 설명드릴게요.
1) npm 설치
npm은 Node.js에 기본적으로 포함되어 있습니다. 따라서 Node.js를 설치하면 자동으로 npm도 설치됩니다. Node.js는 공식 웹사이트에서 다운로드할 수 있습니다. 설치가 완료된 후, 터미널에서 다음 명령어를 입력해 npm이 제대로 설치되었는지 확인할 수 있습니다.
npm -v
이 명령어를 입력하면, npm의 버전 번호가 출력됩니다. 예를 들어, 7.5.2와 같은 숫자가 보이면 정상적으로 설치된 것입니다.
2) 프로젝트 초기화
새로운 Node.js 프로젝트를 시작할 때는 npm init 명령어로 프로젝트를 초기화할 수 있습니다. 이 명령어를 실행하면, 프로젝트의 기본 정보를 입력받고 package.json 파일을 생성합니다.
npm init
npm init -y 명령어를 사용하면, 기본값으로 자동 설정된 package.json 파일을 생성할 수 있습니다.
package.json 파일은 프로젝트의 이름, 버전, 의존성, 스크립트 등을 정의하는 중요한 파일입니다.
3) 패키지 설치
npm을 사용하면 외부 패키지를 쉽게 설치할 수 있습니다. 가장 기본적인 명령어는 npm install입니다. 예를 들어, Lodash라는 유틸리티 라이브러리를 설치하려면 다음과 같이 입력합니다.
npm install lodash
이 명령어를 실행하면, node_modules 폴더에 패키지가 설치되고, package.json 파일에 해당 패키지가 의존성으로 추가됩니다. 이제 프로젝트에서 Lodash를 사용할 수 있게 됩니다.
const _ = require('lodash');
console.log(_.chunk(['a', 'b', 'c', 'd'], 2)); // [['a', 'b'], ['c', 'd']]
4) 전역 패키지 설치
npm 패키지는 프로젝트에 로컬로 설치하는 것 외에도, 전역(global)으로 설치할 수도 있습니다. 전역으로 설치된 패키지는 어디서든 명령어로 실행할 수 있는 도구로 사용됩니다.
예를 들어, 웹팩(Webpack)이나 ESLint와 같은 도구를 전역으로 설치할 때는 -g 플래그를 사용합니다.
npm install -g webpack
전역 패키지를 설치하면, 터미널에서 바로 웹팩 명령어를 실행할 수 있게 됩니다.
5) 패키지 업데이트 및 삭제
설치된 패키지를 업데이트하려면 npm update 명령어를 사용합니다. 특정 패키지의 버전을 최신으로 업데이트하고 싶다면, 다음과 같이 입력합니다.
npm update lodash
패키지를 삭제하려면 npm uninstall 명령어를 사용합니다.
npm uninstall lodash
이렇게 하면, Lodash 패키지가 node_modules 폴더에서 삭제되고, package.json 파일에서 의존성 목록도 제거됩니다.
6) 패키지 버전 관리
npm에서는 패키지의 버전을 관리하기 위해 버전 범위를 지정할 수 있습니다. 예를 들어, ^1.2.3와 같은 버전 번호는 SemVer(유의적 버전) 체계를 따릅니다. 여기서 ^ 기호는 메이저 버전이 변경되지 않는 한, 최신 버전으로 자동 업데이트된다는 의미입니다.
package.json 파일의 의존성 목록에서 원하는 버전 범위를 지정하여 패키지의 업데이트를 관리할 수 있습니다.
{
"dependencies": {
"lodash": "^4.17.21"
}
}
npm은 JavaScript와 Node.js 생태계에서 없어서는 안 될 중요한 도구입니다. 패키지 관리, 의존성 관리, 스크립트 자동화 등 다양한 기능을 제공하며, 이를 통해 개발자는 생산성을 높이고 더 나은 협업 환경을 만들 수 있습니다. npm을 처음 사용하는 분들도 위에서 설명한 기본적인 사용법을 익히면, 프로젝트에서 npm을 효과적으로 활용할 수 있습니다.
이번 포스팅이 npm에 대한 이해를 돕고, 이를 프로젝트에 적용하는 데 도움이 되길 바랍니다. npm을 잘 활용하면, 더 쉽게 필요한 라이브러리를 관리하고, 프로젝트를 효율적으로 운영할 수 있을 것입니다.