45. WIL-02 Restful API, package.json (항해 22일차)

코이그·2023년 4월 24일

항해99

목록 보기
43/54

Restful API

REST API 중심 규칙

  1. URI는 정보의 자원을 표현해야 한다. (행위에 대한 표현이 들어가서는 안된다)
  2. 자원에 대한 행위는 HTTP Method로 표현한다.

REST API의 구성

REST는 자체 표현 구조로 구성되어 REST API만으로 요청을 이해할 수 있다.

자원 - HTTP URI
자원에 대한 행위 - HTTP Method
자원에 대한 행위의 내용 - HTTP Message Pay Load

package.json

  • 프로젝트의 기본 정보를 담는 파일이다.

    • 이름, 버전, 설명 등을 설정할 수 있다.
  • 또한 프로젝트에 필요한 패키지들을 버전별로 다운 받을 수 있는데, 이 모든 패키지들은 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은 프로젝트의 물리적 메모리를 경량화할 수 있다는 장점이 있고, 또한 설치한 패키지들의 버전을 관리할 수 있다는 장점도 있다.

package-lock.json

  • 비슷한 파일로 package-lock.json 파일이 있는데, 이 파일은 위의 package.json의 더 상세한 버전이라고 보면 될 것 같다.
  • package.json 파일에 정의되어있는 패키지 외에도 node_modules의 패키지들의 버전과 의존 관계까지 상세하게 기록해주는 파일이다.

package.json vs. package-lock.json

profile
COYG🔴⚪

0개의 댓글