✏️ NPM 와 미들웨어
📍 NPM
- Node Package Manager 의 약자로 Node.js 에서 사용할 수 있는 여러가지 모듈을 공유하는 곳이다.
📍 미들웨어
- 어플리케이션으로 들어오는 HTTP 요청 위에서 동작하는 기능을 캡슐화하는 방법이다.
- express 앱에서는
app.use()
를 호출하는 것으로 파이프라인에 미들웨어를 삽입한다.
- request, response 객체와 next() 함수를 매개변수로 받는 방식으로 작동된다.
- next() 를 호출하지 않는다면 파이프라인은 거기서 종료되고, 이후의 라우트 핸드러와 미들웨어는 호출되지 않는다.
- next() 를 호출하지 않고 response 를 보내주지 않으면 클라이언트는 타임아웃에 걸리게 된다.
- next() 를 호출했다면 response 는 보내지 않는 게 좋다.
✏️ 사용하기
📍 NPM 기본 패키지 세팅하기
- 현재 작업중인 프로젝트에서 사용중인 모듈을 효율적으로 관리하기 위해 아래 명령어로 npm 패키지를 세팅할 수 있다.
- 최초에 몇가지 세팅해줘야 할 것들이 있는데 그냥 공백으로 넘어가주면 된다.
npm init
- 위 명령어를 실행하면 package.json 파일이 생성된다.
- 해당 파일은
main
의 값을 기본적으로 index.js
로 생성하는데,
루트 파일의 이름을 index.js 로 하지 않았다면 해당 값을 루트파일의 이름으로 수정해주는 것이 좋다.
📍 모듈 설치하기
🔗 NPM 공식 사이트
- 링크에서 원하는 모듈을 찾아 아래 명령어로 모듈을 설치할 수 있다.
npm init 모듈명
package.json
의 dependencies
에서 현재 사용중인 모듈과 버전을 확인할 수 있다.
- package 파일의 목적은 프로젝트의 설명을 남기고,
의존하는 패키지 리스트를 만드는 것이다.
package-lock.json
에서 사용중인 모듈의 디테일한 패키지 내용을 확인할 수 있다.
📍 모듈 삭제하기
npm uninstall 모듈명
✏️ 라이센스
- NPM 에서 제공하는 모듈들은 패키지마다 라이센스 정책이 다르다.
- 심지어 패키지가 의존하고있는 패키지의 라이센스 문제도 있다.
- 가장 많이 사용되는 라이센스는
MIT
로 거의 모든것을 허용한다는 라이센스이다.
- 프로젝트 내의 라이센스 문제를 파악하도록 도와주는 모듈인
nlf
나 license-report
를 사용해 배포전 검증을 해야한다.