npm
npm은 Node Package Manager.
하나의 프로그램은 다양한 모듈이 합쳐져서 만들어지는데, 우리는 모든것을 스스로 만들지 않고 검증된 모듈을 가져다 사용하는 경우가 많다. 필요한 모듈을 다운로드할 수 있는 일종의 앱스토어.
*npm과 같은 개념으로 페이스북이 내놓은 패키지 매니저 yarn도 존재함.
Package.json
이 프로그램을 실행시키기 위해 필요한 모듈들이 무엇인지, 프로그램을 실행시키는 방법, 프로그램을 테스트하는 방법 등이 명시되어 있는 일종의 제품 카탈로그 같은 것. 협업을 할 때 코드와 함께 포함하고 있는 모든 모듈을 다 전달하지 않아도 된다. package.json에서 필요하다고 하는 모듈을 npm을 이용해 다운받아 쓰면 됨.
*npm install이 완료되면 node_modules 디렉토리가 생긴 걸 확인할 수 있다.
"dependencies": {
"react": "^16.8.6", //반드시 필요한 모듈들이 무엇인지가 적혀 있음
}
"devDependencies": {
"jest": "^2.3.0", //개발하는 환경에서 필요한 모듈들이 무엇인지
"eslint" : "^2.0.0"
}
"scripts": {
"start": "node app.js", //npm 으로 실행시킬 수 있는 명령어를 정의함.
"test": "node test.js",
}
알게된 점
노드 패키지들의 버전이 항상 세 자리인것은 SemVer(Semantic Versioning) 넘버링을 따르기 때문.
앞에서 부터 각각 Major.Minor.Patch를 의미한다고.
- Major: 하위 호환이 되지 않는 변경 사항
- Minor: 하위 호환이 되는 변경 사항
- Patch: 간단한 버그 수정
프로그래밍은의 세계는 정말 세밀하다.
패키지를 배포하지 않을 것이라면 npm에 가입할 필요는 없다고 한다.. 뭐하러 미리 가입한 나... ;ㅅ;
'Coding > TIL (Today I Learned)' 카테고리의 다른 글
OOP 01: 객체지향 프로그래밍의 컨셉 (0) | 2019.12.06 |
---|---|
Git 02. 개념과 주요 명령어 (0) | 2019.12.05 |
Javascript runtime, Node.js, NVM (0) | 2019.11.28 |
[Reference] 현직 개발자들의 이야기 (0) | 2019.11.27 |
JavaScript 얕은 복사 vs 깊은 복사 (0) | 2019.11.18 |