npm, 단계적 퍼블리싱 및 새로운 설치 시 제어 기능 도입

발행: (2026년 5월 23일 AM 03:27 GMT+9)
6 분 소요

출처: GitHub Changelog

오늘 우리는 npm의 공급망 보안에 초점을 맞춘 두 가지 업데이트를 출시합니다:

  • 스테이징 퍼블리싱이 일반 제공됩니다.

  • 기존 --allow-git 플래그를 보완하는 새로운 --allow-* 설치 소스 플래그(--allow-file, --allow-remote, --allow-directory)가 추가되었습니다.

두 기능 모두 npm CLI 11.15.0 이상에서 사용할 수 있습니다.

스테이징 퍼블리싱이 일반 제공됩니다

스테이징 퍼블리싱이 이제 npm에서 일반 제공됩니다. 패키지 버전을 바로 소비자에게 공개하는 직접 퍼블리시 대신, 사전 빌드된 tarball이 스테이지 큐에 업로드되고 유지 관리자가 명시적으로 승인해야 설치 가능해집니다. 이 큐는 npmjs.com과 npm CLI 모두에서 확인할 수 있습니다.

스테이징 퍼블리싱은 비대화형 CI/CD 워크플로우에서 발생하는 퍼블리시와 OIDC를 활용한 신뢰된 퍼블리시 모두에 대해 존재 증명을 강화합니다. 2FA 챌린지를 통과한 인간 유지 관리자가 스테이징된 패키지를 승인해야 레지스트리에 릴리스됩니다.

스테이징 퍼블리싱은 오늘부터 실시간으로 제공되며, 문서도 동시에 업데이트되었습니다.

요구 사항

  • npm stage를 사용하려면 npm CLI 11.15.0 이상이 필요합니다.

  • 스테이징 동작을 원할 경우 npm publish 대신 npm stage publish를 사용하도록 CI/CD 워크플로우를 업데이트하세요.

권장 설정

스테이징 퍼블리싱은 **신뢰된 퍼블리싱(OIDC)**과 함께 사용할 것을 권장합니다. 신뢰된 퍼블리싱 설정을 스테이지 전용으로 제한하면 해당 워크플로우에서 npm publish는 거부되고 npm stage publish만 허용됩니다. CI 워크플로우는 비대화형으로 계속 실행되고, 유지 관리자는 웹사이트나 CLI에서 스테이징된 버전을 나중에 승인합니다.

npm stage publish를 로컬에서 실행할 수도 있지만, 가장 가치가 높은 설정은 CI에서 스테이지 큐로 퍼블리시하고 신뢰된 디바이스에서 유지 관리자가 승인하는 방식입니다.

이미 대량 신뢰 퍼블리싱 구성을 관리하고 있다면(2026년 2월 발표), 이를 활용해 패키지를 스테이징 퍼블리싱으로 마이그레이션할 수 있습니다. CI 워크플로우를 새로운 CLI 버전으로 업데이트하고 npm stage publish를 사용하도록 기억하세요.

새로운 설치 소스 플래그

npm 11.10.0에서 --allow-git을 도입해 npm install이 Git 소스에서 의존성을 해결할 수 있는지를 제어하도록 했습니다. npm 11.15.0부터는 세 가지 플래그를 추가해 레지스트리 외 설치 소스 모두에 대해 동일한 명시적 허용 목록 방식을 적용할 수 있게 됩니다:

  • --allow-file: 로컬 파일 경로나 로컬 tarball에서의 설치를 제어합니다.

  • --allow-remote: 원격 URL(https tarball 포함)에서의 설치를 제어합니다.

  • --allow-directory: 로컬 디렉터리에서의 설치를 제어합니다.

  • --allow-git (기존): github:, gitlab:, git+ URL 및 owner/repo 단축형 등 모든 Git 소스에서의 설치를 제어합니다.

각 플래그는 all(현재 기본값) 또는 none을 허용하며, .npmrcpackage.json 설정에서도 지정할 수 있습니다.

자세한 내용은 문서를 확인하세요:

2026년 2월 발표를 다시 상기하면, --allow-git은 다음 주요 CLI 버전(v12)에서 기본값이 all에서 none으로 바뀔 예정입니다. 새로 추가된 --allow-file, --allow-remote, --allow-directory 플래그는 11.15.0에 포함된 기능이며, 오늘 바로 none으로 설정해 보다 엄격한 동작을 선택할 수 있습니다.

토론에 참여하기

여러분이 어떻게 이 기능을 도입하고 있는지 듣고 싶습니다. GitHub Community 토론에서 피드백과 질문을 공유해주세요.

0 조회
Back to Blog

관련 글

더 보기 »

웹용 Copilot에서 사용 가능한 모델 업데이트

무엇이 바뀌었나요? 모델 선택은 가치가 있지만, 우리는 github.com에서 사용 가능한 모델 목록을 제한하고 있습니다. 이는 일관되게 신뢰할 수 있는 응답을 보장하기 위해서입니다.