패키지 매니저(Package Manager)란
프로그램 설치, 업그레이드, 구성 및 제거, 프로세스를 자동화하는 데 사용되는 소프트웨어 도구입니다.
모듈 관리용 도구라고도 합니다.
이를 쉽게 풀어서 말하면
누군가가 이미 만들어놓은 모듈들을 가져와 소프트웨어를 만들려고 할 때,
보다 편리하고 안전하게 사용될 수 있도록 도와주는 도구인 것이죠.
여기서 모듈이란 특정 기능에 대해 이미 구현된 코드묶음이라고 생각하셔도 됩니다.
패키지 단위로 이미 배포되어진 코드들을 개발자 각자가
하나하나 업데이트 및 설치를 한다면 어려움이 있을 거에요. 필요한 패키지가 여러 개라면 더 복잡하겠죠?
그래서 좀 더 편리하게 설치하고, 누군가에 의해 해당 패키지가 변경될 수 없도록 유지시키기 위해
패키지 매니저(PM)를 사용하는 것입니다.
PM의 종류
개발 언어를 설치할 때 접할 수 있는 패키지 매니저의 종류로는
- Python의
pip
- ex)
pip install Django
- ex)
- Java의
Maven
,Gradle
- Ruby의
RubyGems
- JavaSctipts 및 Node.js의
Yarn
그리고
Node.js에서 사용되는 NPM(Node Package Manager)이 있습니다.
NPM을 사용하면 Node.js로 만들어진 소프트웨어를(모듈을) 가져다가 동작시키거나 내 소프트웨어에 덧붙여서 사용할 수 있습니다.
NPM은 Node.js를 설치한다면 자동으로 설치가 되며, 터미널창에 npm -v
를 입력해보면
현재 설치되어 있는 NPM의 버전을 확인하실 수 있습니다.
node.js의 버전 또한 터미널 창에서
node -v
로 확인 가능!
NPM 설치가 따로 필요하다면 https://www.npmjs.com/에서 확인할 수 있어요
NPM 명령어
주로 사용되는 명령어 위주로 적어보았습니다.
npm help
어떤 명령어가 있는지 궁금할 때 사용.- ex) 특정 명령어 설명 출력도 가능해요! init 명령어가 궁금하다면
npm init help
- ex) 특정 명령어 설명 출력도 가능해요! init 명령어가 궁금하다면
npm init
새로운 프로젝트에 package.json 설정 파일을 만들때 사용.npm install 모듈명
특정 모듈(패키지)을 설치할 때 사용.- 옵션 -g를 붙이면(
npm install -g
) 해당 프로젝트 뿐만 아니라 다른 프로젝트에도 설치된 패키지를 사용할 수 있게 됩니다. 대신 관리자의 권한이 필요합니다.
- 옵션 -g를 붙이면(
npm list 모듈명
특정 모듈의 버전이 궁금할 때 사용.npm update
설치된 패키지를 업데이트 할 때 사용.npm start
package.json파일의 scripts에 있는 start 명령어를 실행할 때 사용.npm stop
start했던 것을 멈출 때 사용.
NPM으로 특정 모듈 설치해보기
npm install
명령어를 사용하여 uglify라는 패키지를 설치해보겠습니다.
uglify-js?
컴퓨터는 코드가 이곳 저곳으로 이동될 때 줄바꿈이나 띄어쓰기도 데이터로 인식하기 때문에 사용자가 원하지 않는 전송 결과가 나올 수 있습니다.
이럴때 uglify는 줄바꿈, 띄어쓰기를 자동으로 제거해주며 코드 용량 또한 압축해주는 모듈입니다.
더 자세한 것을 알고싶다면! https://www.npmjs.com/package/uglify-js
node 프로젝트가 있는 위치에서 터미널 창에 npm install uglify-js
명령을 입력합니다.
해당 프로젝트 말고도 다른 위치에서 uglify를 사용하고 싶다면 명령 끝에 -g 옵션
을 붙여주세요.
npm install uglify-js -g
설치가 완료된 화면입니다.
설치가 잘 되었다면 터미널 창에서 npm list uglify-js
를 실행했을 때 모듈 이름과 버전이 출력되어야 합니다.
uglify 패키지의 사용법
패키지에 많은 명령들이 있겠지만 저는 다음의 두 가지 옵션을 거쳐 코드를 줄여보겠습니다.
-m
변수병을 의미없는 짧은 이름으로 변경해준다.-o
특정 파일명으로 저장해준다.
//배열을 정렬하여 반환하는 함수 코드
//파일명 : array.js
function array_sort(arr){
let arr2 = arr.sort((a, b) => a - b);
return arr2;
}
다음 명령을 통해 array.js 코드에서 줄바꿈과 띄어쓰기를 제거한 후 array_changed.js로 저장해보았어요.
uglifyjs array.js -o array_changed.js -m
- 참고 자료
https://devopedia.org/package-manager : 패키지 매니저
https://www.zerocho.com/category/NodeJS/post/58285e4840a6d700184ebd87 : npm 명령어