이 사이트의 콘텐츠는 인공지능(AI) 또는 기계 번역 기술을 사용하여 번역되었으며 오류가 있을 수 있습니다.

Skip to content
Systems

NPM의 시맨틱 버저닝에 대한 대규모 분석

Author

도널드 핀크니(노스이스턴), 페데리코 카사노(노스이스턴), 아르준 구하(노스이스턴 및 로블록스), 조나단 벨(노스이스턴)

Venue

Mining Software Repositories (MSR) 2023

Abstract

NPM 패키지 저장소에는 200만 개 이상의 패키지가 포함되어 있으며, 매주 수백억 건의 다운로드가 이루어집니다. 거의 모든 자바스크립트 애플리케이션은 NPM 저장소에서 패키지를 설치하기 위해 NPM 패키지 관리자를 사용합니다. NPM은 건강한 생태계를 유지하기 위해 “시맨틱 버저닝”(‘semver’) 방식을 채택하고 있습니다. 이를 통해 버그 수정 사항은 가능한 한 신속하게 하위 패키지에 안정적으로 전달되는 반면, 호환성을 깨는 변경 사항은 하위 패키지 관리자의 수동 개입이 필요합니다. 개발자들이 semver를 어떻게 사용하는지 이해하기 위해, 우리는 NPM에 있는 모든 패키지의 모든 버전을 포함하는 데이터셋을 구축하고 생태계 전반에 걸친 업데이트 흐름을 분석했습니다. 우리는 NPM을 위한 시간 이동형 종속성 해결기를 구축하여, 각 시점에 어떤 버전의 종속성이 해결되었을지 정확히 파악할 수 있게 했습니다. 또한 분석을 세분화하여, 생태계의 나머지 부분과 비교하여 보안 관련 업데이트(취약점을 도입하거나 패치하는 업데이트)를 직접 분석할 수 있도록 했습니다. 그 결과, 개발자가 SemVer를 올바르게 사용할 경우 보안 패치와 같은 중요한 업데이트가 대부분의 경우(90.09%) 하류 종속성으로 매우 빠르게 전달되는 것으로 나타났습니다. 그러나 개발자들이 SemVer 버전 제약 조건과 버전 번호 증가 규칙을 완벽하게 준수하지 않아 항상 그런 것은 아닙니다. 본 연구 결과는 개발자와 연구자 모두에게 시사점을 제공합니다. 우리는 인프라와 데이터셋을 오픈 소스 라이선스 하에 공개합니다.