나는 PkgWatch를 구축하여 npm 패키지 포기를 예측하고 빌드가 깨지기 전에 방지합니다

발행: (2026년 1월 20일 오전 02:35 GMT+9)
3 min read
원문: Dev.to

Source: Dev.to

Colors와 faker가 2022년 1월에 수천 개의 빌드를 한 번에 깨뜨렸습니다.
Event‑stream은 암호화폐를 훔치는 악성코드에 의해 손상되었습니다.
악명 높은 left‑pad 사건은 React와 Babel을 중단시켰습니다.

이것들은 전통적인 보안 취약점이 아니었습니다. 유지보수자 문제였으며, npm audit 같은 도구로는 잡을 수 없었습니다.

여러 프로덕션 애플리케이션의 의존성을 관리하면서 다음과 같은 상황에 지쳤습니다:

  • 갑자기 유지보수가 중단되는 패키지
  • 한 사람이 모든 권한을 가지고 있는 단일 유지보수자 프로젝트
  • 나중에야 명확해지는 미묘한 포기 징후

PkgWatch 소개

PkgWatch는 이러한 문제를 사전에 예측하는 의존성 건강 인텔리전스 플랫폼입니다. 여러 신호를 분석해 각 패키지에 건강 점수(0‑100)와 위험 수준(LOW, MEDIUM, HIGH, CRITICAL)을 부여합니다.

분석된 신호

구성 요소측정 항목
Maintainer Health커밋 최신성, 실제 버스 팩터(기여자 수만이 아니라)
Evolution릴리스 빈도, 커밋 활동 패턴
SecurityOpenSSF Scorecard, 취약점 이력
Community기여자 다양성, 이슈 응답 시간
Adoption다운로드 수, 의존 패키지 수, 스타 수

건강 점수

각 패키지는 다음을 받습니다:

  • Health Score: 0‑100
  • Risk Level: LOW, MEDIUM, HIGH, CRITICAL

설치

npm install -g @pkgwatch/cli

기본 사용법

단일 패키지 확인

pkgwatch check lodash

샘플 출력

lodash (npm)
  Health Score: 72/100
  Risk Level: MEDIUM

  Maintainer Health: 65 (1 active maintainer in last 90 days)
  Evolution: 58 (Last release: 8 months ago)
  Security: 85 (OpenSSF: 6.2/10)
  Community: 78 (142 contributors)

package.json의 모든 의존성 스캔

pkgwatch scan

고위험 패키지에 대해 CI 실패

pkgwatch scan --fail-on HIGH

GitHub Action 예시

- uses: Dlaranjo/pkgwatch/action@v1
  with:
    api-key: ${{ secrets.PKGWATCH_API_KEY }}
    fail-on: HIGH

실시간 데모 및 가격

  • Live Demo – 가입 없이 체험 가능(시간당 20 요청)
  • Free Tier – 월 5,000 요청, 신용카드 필요 없음
  • Documentation – 전체 API 레퍼런스

로드맵

  • 추가 레지스트리 지원(Python PyPI는 이미 지원; Cargo/Go 곧 지원)
  • 과거 추세 분석
  • 건강 변화에 대한 Slack/Discord 알림

피드백

여러분의 의견을 듣고 싶습니다! 어떤 신호를 추가로 추적했으면 좋겠나요?

링크

  • Website:
  • GitHub:
  • npm:
Back to Blog

관련 글

더 보기 »

의존성 롤러코스터: NPM 테마 파크 탐색

모든 것을 시작하게 만든 “아하!” 순간 새로운 기능을 구현하고 있었는데, 마치 코드 마법사 🧙‍♂️가 된 기분이었다. PR을 제출했더니, 내 TL이 댓글을 달았다.

graphql-complexity-validation 소개

✨ 특징 - 런타임 의존성 없음 - 완전 타입 지정된 TypeScript - fragments 및 inline fragments 지원 - 기본적으로 Introspection 무시 지원 대상: - Apollo…