Node.js 교과서'라는 책을 통하여 공부.
22.01.12(수) ~ 22.01.13(목)까지 공부한 내용을 기록.
208p ~ 226p
웹개발이나 리액트를 쓰면서 npm을 많이 사용했었다. npm으로 리액트 관련 모듈들도 설치하고 리액트를 npm run start로 시작시키기도 했는데, 사실 그냥 따라치는 느낌이었고 npm이 무엇인지 잘 몰랐다. 이번 단원 공부를 통해 npm에 대해서 알 수 있었다. 또 협업을 하면서 노드모듈들과 package.json파일을 어떻게 깃허브에서 관리해야하는지 정확한 개념을 이해하지 못했었는데 이번기회를 통해 그것들 또한 알 수 있었다. 내용들을 간단히 정리해보고자 한다.
#npm이란?
npm은 Node Package Manager의 약어로 말그대로 노드 패키지 매니저라는 말이다. 노드들의 패키지를 편리하게 설치 할 수 있도록 도와주는 것인데, 이제는 노드를 공부하고 있기 때문에 이러한 모듈들이 무엇을 뜻하는지 잘 알 수 있었다. 약 125만개의 모듈들이 있다고 하니까 노드가 얼마나 많이 쓰이는지 짐작 해 볼 수 있다.
#package.json 이란?
이러한 모듈들을 하나 둘 씩 설치하여 사용하다보며, 모듈들에 대한 버전을 기록해 놔야하는데 이러한 것이 pacakge.json에 담겨져 있다. 또한 프로젝트의 이름부터 버전 저자 등등 다양한 정보가 담겨 있다.
주로 기억하면 좋을 것은
scripts 안에 "key" : "value"의 형태로 적게 되는데 이것은 예약어로 등록되어 벨류부분에 값이 실행 된다. 예를 들어 npm start라고 터미널에 적게 되면 nodemon app.js가 실행된다.
dependencies는 설치한 모듈들이다. 모듈에 대한 버전 정보가 들어있다. 이제 나중에 npm install을 하게 되면 package.json의 디펜던시의 정보를 토대로 모듈들을 설치해 준다.
devDependencies는 개발전용 모듈이다. 개발할때만 사용하고 실 서비스 배포시에는 사용되지 않는 모듈을 뜻한다. 개발버전으로 모듈을 설치할때는 npm i -D nodemon 이런식으로 적으면 된다, i는 install, -D는 Developer 옵션인것 같다.
옛날에는 npm install --save express 이런식으로 --save옵션을 줬는데 이 옵션은 package.json dependencies에 모듈을 추가해주는 옵션이었으나 자동으로 추가해주어 따로 옵션을 주지 않아도 된다고 한다.
#package-lock.json은 뭘까?
pacakge-lock.json은 package.json보다 더 자세한 모듈들의 정보를 담고 있는데 의존관계들도 담고 있다. 뭔가 복잡한 관계가 있어서 모듈 설치에 주의해야한다면 이것을 활용한다고 했던 것 같았다.
##패키지 버전의 자릿수의 의미
1.0.7 <==> Major . Minor . Patch
major = 하위 호완이 되지 않는 변경사항
Minor = 하위 호환이 되는 변경 사항
Patrch = 간단한 버그 수정
근데 너무 이 버전을 맹신하지말자! 모듈을 업데이트하는 개발자들이 이 시멘틱을 항상 따르지는 않는다는 것!
'• 개발 > node.js' 카테고리의 다른 글
[node.js] Passport를 이용한 local-login 전략 (0) | 2022.01.23 |
---|---|
[node.js] 익스프레스(express) 사용하기, 미들웨어란, 미들웨어 순서 (0) | 2022.01.17 |
[node.js] http모듈을 이용해 서버를 시작해 보기, Cookie와 Session알아보기 (0) | 2022.01.12 |
[node.js] 노드 기본개념, JS(ES2015+)문법, 노드 기능 알아보기 (0) | 2022.01.09 |
[node.js] 공부 시작에 앞서 (0) | 2022.01.09 |