실습을 진행하면서 npm
이나 yarn
을 이용해서 모듈이나 라이브러리를 다운받는데 그 와중에 package.json
이라는 파일이 꼬박꼬박 생기는 걸 발견했다.
node_modules
폴더야 말 그대로 노드 모듈을 모아놓은 폴더겠거니 하는데 package.json
은 대체 뭘까?
캡쳐한 이미지를 올리면서 생각났는데 이제보니 회사 다닐 때 정말 많이 봤던 구조다. 그땐 버전 체크만 하면 됐어서 큰 호기심도 못 가지고(이유: 물어보면 혼날 것 같았다.) 그러려니 하고 넘어갔었는데 이게 뭐하는 파일인지 배우게 되다니 감개무량하다.
package.json
파일은 생성한 프로젝트의 메타정보와 이 프로젝트가 의존한 모듈들에 대한 정보를 json(JavaScript Object Notation)형태로 모아놓은 파일이다.
npm
(node package manager)은 Node.js에서 사용 가능한 오픈소스 모듈과 재활용성이 높은 모듈을 라이브러리로 만들거나 프레임워크, 패키지로 만들어서 공유하는 플랫폼이다.
yarn
도 모듈과 라이브러리, 프레임워크, 패키지를 공유하는 플랫폼인데, 속도가 빨라서 npm
과 함께 (어쩌면 그것보다 더 많이) 활용되고 있는 플랫폼이다.
npm
과 yarn
에는 약 70만개의 패키지가 등록이 되어있어 웹개발을 할 때에 많은 도움이 되며, 새로운 모듈이나 패키지를 설치, 관리 하는데에 용이하기 때문에 개발자들에게 필수로 쓰인다.
package.json
내에 기재되어 있는 것은 현재 사용하고 있는 모듈이나 라이브러리에 대한 정보가 적혀 있을 뿐인데 왜 package.json
를 사용해야할까?
package.json
를 사용하지 않을 경우
그러므로 필요한 패키지들의 목록을 정리해놓고 그 목록 파일을 이용하여 단 한번의 명령어로 필요한 패키지들을 모두 설치할 수 있다. 이 패키지 정의 파일을 바로 package.json
라고 하는 것이다!
다시 말해서,
package.json
는 프로젝트에 대한 메타정보, 설치한 패키지의 의존성 및 버전을 관리하는 파일이기 때문에 중요하다!