🙊 잘못 기재한 부분이 있다면 댓글로 남겨주세요!


👾 어디서 튀어나온 package.json 이니?

실습을 진행하면서 npm이나 yarn을 이용해서 모듈이나 라이브러리를 다운받는데 그 와중에 package.json이라는 파일이 꼬박꼬박 생기는 걸 발견했다.
node_modules 폴더야 말 그대로 노드 모듈을 모아놓은 폴더겠거니 하는데 package.json은 대체 뭘까?

캡쳐한 이미지를 올리면서 생각났는데 이제보니 회사 다닐 때 정말 많이 봤던 구조다. 그땐 버전 체크만 하면 됐어서 큰 호기심도 못 가지고(이유: 물어보면 혼날 것 같았다.) 그러려니 하고 넘어갔었는데 이게 뭐하는 파일인지 배우게 되다니 감개무량하다.

👾 package.json가 뭐죠?

package.json 파일은 생성한 프로젝트의 메타정보와 이 프로젝트가 의존한 모듈들에 대한 정보를 json(JavaScript Object Notation)형태로 모아놓은 파일이다.

  • 여기서 의존했다고 함은 프로젝트를 진행하면서 필요한 모듈을 다운로드 하는 등 npm, yarn을 활용하기 위한 정보들을 모아서 기재했다는 뜻이다.
  • json은 괄호 안에서 보이듯이 JavaScript형태의 객체 표기법 형태를 빌렸다는 의미이다.

👾 npm은 뭔데요? yarn이란 것도 있던데요?

npm(node package manager)은 Node.js에서 사용 가능한 오픈소스 모듈과 재활용성이 높은 모듈을 라이브러리로 만들거나 프레임워크, 패키지로 만들어서 공유하는 플랫폼이다.
yarn도 모듈과 라이브러리, 프레임워크, 패키지를 공유하는 플랫폼인데, 속도가 빨라서 npm과 함께 (어쩌면 그것보다 더 많이) 활용되고 있는 플랫폼이다.

npmyarn에는 약 70만개의 패키지가 등록이 되어있어 웹개발을 할 때에 많은 도움이 되며, 새로운 모듈이나 패키지를 설치, 관리 하는데에 용이하기 때문에 개발자들에게 필수로 쓰인다.

🤔그래서 왜 package.json를 쓰는데요?

package.json 내에 기재되어 있는 것은 현재 사용하고 있는 모듈이나 라이브러리에 대한 정보가 적혀 있을 뿐인데 왜 package.json를 사용해야할까?

package.json를 사용하지 않을 경우

  • 개발 시 사용하는 외부 모듈들을 관리하기 어려워질 수 있고
  • 각 패키지마다 고유한 버전이 있기 때문에 프로젝트가 사용하는 패키지의 버전을 기록해두어야 나중에 문제가 생기지 않고
  • 새로운 프로젝트를 진행할 경우 필요한 모듈이 많다면 매번 다시 설치를 해야하는 번거로움
    등등 문제가 있을 수 있다!

그러므로 필요한 패키지들의 목록을 정리해놓고 그 목록 파일을 이용하여 단 한번의 명령어로 필요한 패키지들을 모두 설치할 수 있다. 이 패키지 정의 파일을 바로 package.json라고 하는 것이다!

다시 말해서, package.json는 프로젝트에 대한 메타정보, 설치한 패키지의 의존성 및 버전을 관리하는 파일이기 때문에 중요하다!

참고 사이트
npm이란 무엇인가?
[NodeJS] 모두 알지만 모두 모르는 Package.json

profile
잘하는 건 아닌데 포기하진 않을거야

0개의 댓글