리눅스의 패키지와 패키지 매니저는 포장된 상품과 온라인 쇼핑몰 같은 역할.
패키지 = 여러 파일이 압축되어 담겨있는 하나의 상자
패키지 파일의 기본적인 구성
- 프로그램 파일
- 프로그램 설치 파일
- 프로그램 설치 설명서
- 프로그램에 대한 정보를 담은 파일
패키지 매니저 = 패키지의 설치, 변경, 삭제 등 관리를 편리하게 해주는 도구
앱스토어 같은 것!!! 업데이트를 확인하거나 필요없는 프로그램 제거에도 사용할 수 있음
- 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 |