인프라와 회의중에 NPM이 무엇이냐라는 질문이 나왔지만
단순히 레지스트리라고 밖에 답변하지 못했다.
나 역시 잘 알지 못해 리서치를 해보았다.
NPM 이란?
NPM(Node Package Manager)는 소프트웨어 레지스트리이다.
레지스트리는 자바스크립트 소프트웨어와 주변 메타 정보의 대형 공개 데이터베이스이다.
- 중앙화된 레지스트리, 쉽게 접속이 가능하며 간단한 명령어로 설치가 가능하다.
- 버전 컨트롤, 개발자들이 쉽게 패키지의 여러 버전들을 쉽게 관리 할 수 있다.
몇 가지 단점도 존재한다.
- 보안 이슈, 누구나 패키지를 생성, 배포할 수 있어서 악성 코드를 심을 수 있다.
- 제한된 오프라인 기능, 인터넷이 연결되어야만 설치가 가능하다.
Infra 관점에서
NPM을 사용하여 Node.js 패키지를 관리하고 서버에 올바른 버전의 패키지가 설치되도록 보장할수 있습니다. NPM은 개인 개발관리에도 사용될 수 있으면 조직이 공개 또는 비공개 패키지에 대한 엑세스를 관리하도록 조직을 설정할 수 있습니다.