본문 바로가기

Linux/기초

패키지와 패키지 매니저, 런타임, nvm, npm 그리고 Package.json

리눅스의 패키지와 패키지 매니저는 포장된 상품과 온라인 쇼핑몰 같은 역할.

패키지 = 여러 파일이 압축되어 담겨있는 하나의 상자

패키지 파일의 기본적인 구성

  • 프로그램 파일
  • 프로그램 설치 파일
  • 프로그램 설치 설명서
  • 프로그램에 대한 정보를 담은 파일

패키지 매니저 = 패키지의 설치, 변경, 삭제 등 관리를 편리하게 해주는 도구

앱스토어 같은 것!!! 업데이트를 확인하거나 필요없는 프로그램 제거에도 사용할 수 있음

 

  • brew 명령어 이용하기
    • brew 자체 업데이트: brew update
    • 업데이트 필요한 파일 조회: brew outdated
    • 프로그램 업그레이드(업데이트): brew upgrade 프로그램이름
    • 프로그램 검색: brew search 검색어
    • 프로그램 정보 확인: brew info 프로그램이름
    • 프로그램 설치: brew install 프로그램이름
    • 프로그램 삭제: brew uninstall 프로그램이름
    • 설치된 프로그램 보기: brew list

런타임 (runtime)

JavaScript 런타임(runtime)이란 크롬, 사파리 같은 웹 브라우저처럼 프로그래밍 언어가 구동되는 환경.

어떤 프로그램이 동작할 때, 프로그램이 동작하는 코드가 실행되는 곳.

 

node.js라는 새로운 JavaScript 런타임의 등장으로,

JavaScript로 웹 페이지 뿐만 아니라 서버와 같은 다른 프로그램을 만들 수 있음.

 

런타임 : 프로그래밍 언어가 실행되는 환경

node.js --> JavaScript runtime

NVM (Node Version Manager)

다양한 node version를 설치하고 관리할 수 있는 프로그램

 

간단한 명령어로 node를 설치하고 다양한 node version들을 손쉽게 옮겨 다닐 수 있음.

node version들을 옮겨다니는 이유는 내 코드가 다양한 버전에 대응해야 해서. nvm은 따로 설치하는 프로그램!

  • nvm ls  -- nvm을 통해 설치한 node version들이 나옴
  • nvm install 12.18.3   -- 특정 버전의 node 설치
  • nvm use 14.15.5  -- 특정 버전의 node 사용

Npm과 package.json

npm (Node Package Manager) = 일종의 앱스토어. 필요한 모듈을 다운로드할 수 있는 모듈 스토어

npm module = 남이 만들어놓은 모듈

package.json = 이런 npm 모듈 정보를 활용하기 위한 정보를 담은 파일

이 프로그램을 실행시키기 위해 필요한 모듈들이 무엇인지, 프로그램을 실행시키는 방법, 프로그램을 테스트하는 방법등이 명시되어 있음.

실제 모듈은 따로 node_modules이라는 폴더에 저장되고 package.json에는 어떤 모듈인지만 적혀있음

제품 카탈로그라고 생각하면 됨. 이름만 들어가 있음!

 

>> npm install 명령어로 package.json에서 필요하다고 하는 모듈을 다운받고 node_modules 디렉토리 체크!

 

리눅스의 패키지 매니저 === apt

macOs === brew

node.js === npm

 

내 귀여운 그림

package.json 내용 설명

다른 사람과 함께 개발하고 사용할 때 쓰는 package.json

무엇을 설치해야 이 프로그램이 작동되는지, 무엇을 설치해야 이 프로그램을 개발할 수 있는지 알 수 있게 해주는 것

 

1. devDependencies = 프로그램 실행과 관계없는 오로지 개발을 위해 필요한 dependency (의존성 모듈)

이 프로젝트를 개발하는 환경에서 필요한 모듈들이 무엇인지 적혀있음. 

예를 들면 코드 모양을 잡아주는 lint나 테스팅 모듈처럼, 실제 프로젝트 동작에 직접적으로 영향을 주지 않는 모듈 명시

--save-dev 옵션과 함께 설치하면 자동으로 devDependencies에 추가됨

2. dependencies = 프로젝트가 돌아가기 위해 반드시 필요한 모듈들이 무엇인지 적혀있음

underscore라던지 react 같은 것이 좋은 예..

--save 옵션 (생략 가능)과 설치하면 자동으로 dependencies에 추가됨

 

scripts 예제

작업 내용 실행 스크립트
node.js 앱 실행 npm run start
테스트 실행 npm run test
코드 검사  npm run lint
과제 제출 (코드스테이츠만) npm run submit -- 사설 npm 저장소

 

반응형

'Linux > 기초' 카테고리의 다른 글

Linux 이것저것  (0) 2021.05.24
CLI & GUI 그리고 리눅스  (4) 2021.05.20