REST는 자체 표현 구조로 구성되어 REST API만으로 요청을 이해할 수 있다.
자원 - HTTP URI
자원에 대한 행위 - HTTP Method
자원에 대한 행위의 내용 - HTTP Message Pay Load
프로젝트의 기본 정보를 담는 파일이다.
또한 프로젝트에 필요한 패키지들을 버전별로 다운 받을 수 있는데, 이 모든 패키지들은 node_modules에 설치가 되고, package.json에 패키지의 버전들이 저장이 된다.
gitHub이나 기타 저장소로 프로젝트를 복사/이동하려고 할 때, node_modules를 전부 복사하는 것은 시간이 오래 걸린다. 이 때 사용할 수 있는게 package.json 파일인데, github을 예로 들면 node_modules를 .gitignore에 추가하고 프로젝트를 깃 레포에 push 한 뒤 다른 곳에서 git pull을 했을 때 당연히 node_modules 폴더는 제외가 되는데, package.json이 위치해있는(보통 루트) 디렉토리에서 npm install 명령어를 실행하면 package.json 파일에 담겨있는 패키지들이 특정 버전으로 설치가 된다.
npm init -y; npm istall express를 실행하게 되면 package.json 맨 아래에 "dependencies": { "express": "^4.18.2" } 이런 식으로 패키지가 설치가 되었다는 것을 확인할 수 있다.
위처럼, package.json은 프로젝트의 물리적 메모리를 경량화할 수 있다는 장점이 있고, 또한 설치한 패키지들의 버전을 관리할 수 있다는 장점도 있다.