posts
FE
06-dev-tool
Dependency

Dependency Manage

CDN(Content Delivery Network)

  • 콘텐츠를 효율적으로 전달하기 위해 분산된 서버에 데이터를 저장하여 제공하는 시스템
  • 전역 스코프를 공유하기 때문에 파일 간의 의존성을 확인해야 하는 번거로움
  • 네트워크 요청이 증가하여 성능 측면에서도 단점이 존재

npm (Node Package Manager)

  • Node.js의 패키지를 관리하는 도구
  • 모든 패키지는 npm 레지스트리에 저장됨
  • package.json 파일을 통해서 프로젝트 정보와 패키지의 정보를 관리함
{
    "name": "test",
    "version": "1.0.0",
    "description": "npm test package.json",
    "main": "index.js",
    "scripts": {
        "dev": "next dev",
        "build" : "next build",
        "start" : "next start"
    }
    ....
}

package.json의 속성들

이름설명
name프로젝트(패키지)의 이름
version프로젝트의 버전을 명시, semantic versioning을 따름
dependencies프로젝트의 의존성 패키지들을 정의하며 실제 프로덕션 배포에서도 필요한 패키지
devDependencies프로젝트의 의존성 패키지들을 정의하지만 실제 프로덕션 배포에서는 필요하지 않고 개발에만 필요한 패키지
repository소스 코드가 저장된 리포지터리 주소 명시
author개발자 정보를 명시
licenses라이선스를 명시
main패키지를 설치하는 곳의 진입점으로 사용할 파일
scripts커스텀 명령어를 정의하여 프로젝트를 실행