~/VibeHandbook
$39

챕터 05 · 04

패키지와 의존성

아무도 앱 전체를 처음부터 다 쓰지 않습니다. 어렵고 흔한 문제들 — 날짜 형식 맞추기, 결제 처리하기, 달력 그리기 — 은 이미 다른 사람들이 해결해서 묶어 놓았습니다. 패키지는 여러분이 직접 쓰는 대신 프로젝트에 끌어와 쓰는, 재사용 가능한 코드 덩어리입니다. 프로젝트의 의존성은 그 프로젝트가 의지하는 패키지들의 목록입니다.

JavaScript 세계에서 이것을 관리하는 도구가 npm(Node Package Manager)입니다. 두 개의 파일이 장부 역할을 합니다:

  • package.json — 프로젝트에 무엇이 필요한지를 사람이 읽을 수 있게 적은 목록에, 실행 명령어까지 더한 것입니다. 여러분(또는 AI)이 이 파일을 편집합니다.
  • 잠금 파일(lockfile) (package-lock.json 같은 것) — 모든 패키지와 그 정확한 버전을 기계가 생성한 그대로 기록한 것입니다. 그래서 여러분의 컴퓨터에서든, 동료의 컴퓨터에서든, 서버에서든 앱이 똑같이 빌드됩니다. 이 파일은 손으로 편집하지 않고, 도구가 관리하도록 맡깁니다.
{
  "name": "my-app",
  "scripts": {
    "dev": "next dev",
    "build": "next build"
  },
  "dependencies": {
    "next": "16.0.0",
    "react": "19.0.0"
  }
}

왜 신경 써야 할까요? AI가 "이걸 위해 라이브러리를 하나 추가하자"고 할 때, 그것은 package.json을 편집하는 것이고 여러분은 남의 코드를 믿는 겁니다 — 잘 알려진 의존성이 적을수록, 정체불명의 의존성이 잔뜩 쌓인 것보다 안전합니다. 그리고 빌드가 영문도 모르게 망가질 때, 버전이 어긋난 의존성이 흔한 용의자이고, "패키지를 지우고 다시 설치한다"가 실제로 자주 통하는 해결책입니다.

오프라인으로 보고 싶으세요?

PDF + EPUB + 다운로드형 프롬프트 라이브러리 + 버전 업데이트를 받으세요.

$ PDF 받기 — $39