GitHub 패키지 매니저로 비용 절감

발행: (2026년 2월 26일 오전 05:44 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

사전 요구 사항

시작하기 전에 다음을 확인하세요:

  • NPM 패키지를 포함하고 있는 GitHub 저장소
  • 최소한의 package.json 설정 파일
  • 저장소 생성 및 패키지 관리를 할 수 있는 권한이 있는 GitHub 계정
  • 로컬에 설치된 Node.js와 npm

package.json 파일 설정

GitHub Package Manager를 사용할 것임을 나타내도록 package.json 파일을 수정합니다. name 필드에 GitHub 사용자 이름을 스코프로 포함시키세요:

{
  "name": "@your-username/your-package",
  "version": "1.0.0",
  "description": "A private package published on GitHub Package Manager",
  "repository": {
    "type": "git",
    "url": "https://github.com/your-username/your-repo.git"
  },
  "publishConfig": {
    "registry": "https://npm.pkg.github.com/@your-username"
  }
}

your-usernameyour-repo를 실제 GitHub 사용자 이름과 저장소 이름으로 바꾸세요.

GitHub에서 액세스 토큰 생성

패키지를 배포하려면 적절한 권한을 가진 개인 액세스 토큰이 필요합니다.

  1. GitHub 계정 설정으로 이동합니다.
  2. 다음 권한을 가진 **Personal Access Token (classic)**을 생성합니다:
    • write:packages
    • read:packages
    • repo (저장소가 비공개인 경우)

토큰은 비밀번호 관리자와 같은 안전한 장소에 보관하세요.

GitHub Actions 설정

패키지 빌드 및 배포 과정을 자동화하는 워크플로를 만듭니다. 다음 YAML 파일을 저장소의 .github/workflows/publish.yml에 추가하세요:

name: Build and Deploy

on:
  push:
    branches:
      - release

jobs:
  publish-gpr:
    runs-on: ubuntu-latest
    permissions:
      packages: write
      contents: read
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v1
        with:
          node-version: 20
          registry-url: https://npm.pkg.github.com/
          scope: '@your-username'
      - uses: pnpm/action-setup@v3
        with:
          version: 9.10.0
      - run: pnpm install
      - run: pnpm publish:build
      - run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

이 워크플로는 release 브랜치에 푸시될 때마다 트리거되어 자동으로 패키지를 GitHub Package Manager에 배포합니다.

워크플로 테스트

.github/workflows/publish.yml 파일을 release 브랜치에 커밋하고 푸시합니다. 올바르게 설정되었다면:

  • GitHub Actions가 워크플로를 실행합니다.
  • 패키지가 GitHub Package Manager에 배포됩니다.
  • 저장소의 Packages 탭에서 패키지를 확인할 수 있습니다.

배포된 패키지 설치

다른 프로젝트에서 패키지를 사용하려면 프로젝트 루트에 다음 내용을 가진 .npmrc 파일을 추가합니다:

@your_username:registry=https://npm.pkg.github.com/
//npm.pkg.github.com/:_authToken=YOUR_TOKEN
engine-strict=true

패키지를 설치하려면 npm 명령을 실행합니다:

npm install @your-username/your-package

YOUR_TOKEN을 앞서 만든 토큰으로 교체하세요.

결론

GitHub Package Manager를 이용한 비공개 npm 패키지 배포는 기존 npm 서비스에 비해 비용 효율적이며 간편한 대안입니다. GitHub Actions와 결합하면 전체 과정을 완전히 자동화할 수 있어 시간과 리소스를 절약할 수 있습니다.

이 방법을 사용하면 유료 npm 비공개 패키지가 필요 없으며, 코드, 버전 관리, 패키지를 모두 하나의 GitHub 생태계에서 관리할 수 있습니다.

0 조회
Back to Blog

관련 글

더 보기 »

FSCSS 변수 대체 연산자 (||)

FSCSS Variable Fallback Operator의 커버 이미지 ||https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fd...

Fedora / Red Hat에 Kiro 설치

개요 이 가이드가 수행하는 작업 - 공식 다운로드 서버에서 Kiro IDE 데스크톱 앱을 설치합니다. - 데스크톱 엔트리를 설정하여 Kiro를 실행할 수 있도록 합니다…