2025년 PyPI: 연간 리뷰
Source: Hacker News
핵심 수치
- 3.9 백만개의 새로운 파일이 게시됨
- 130,000개의 새로운 프로젝트가 생성됨
- 1.92 엑사바이트의 총 데이터 전송량
- 2.56 조개의 총 요청 처리
- 평균 81,000개의 초당 요청
이 수치들은 파이썬 커뮤니티의 지속적인 성장과 활력을 증명합니다.
주요 개선 사항
-
개선 1 – 첫 번째 개선에 대한 간략한 설명.
(여기에 관련 세부 정보, 메트릭 또는 예시를 추가하세요.) -
개선 2 – 두 번째 개선에 대한 간략한 설명.
(스크린샷, 전후 비교, 성능 데이터 등 지원 정보를 포함하세요.) -
개선 3 – 세 번째 개선에 대한 간략한 설명.
(사용자, 이해관계자 또는 시스템에 미치는 영향을 설명하세요.) -
개선 4 – 네 번째 개선에 대한 간략한 설명.
(의존성, 배포 계획 또는 다음 단계에 대해 언급하세요.)
예시 코드 스니펫
# Replace this placeholder with the actual code you want to showcase
def example_function(param):
"""
Brief docstring describing what the function does.
"""
# TODO: implement the function logic
return param
각 항목을 강조하고 싶은 구체적인 세부 사항으로 자유롭게 확장하세요.
보안이 최우선, 보안은 언제나
보안은 우리의 최우선 과제이며, 2025년에는 PyPI를 그 어느 때보다 안전하게 만들기 위해 여러 기능을 출시했습니다.
피싱 저항성을 위한 향상된 2단계 인증(2FA)
우리는 **TOTP 기반 로그인에 대한 이메일 인증**을 시작으로 2FA 구현을 크게 개선했습니다. 이는 TOTP와 같은 피싱에 취약한 2FA 방식을 사용할 때 신뢰할 수 있는 장치에서 로그인을 확인하도록 요구함으로써 추가적인 보호 계층을 제공합니다.
이러한 변경을 적용한 이후 다음과 같은 결과가 나타났습니다:
- **52 %**의 활성 사용자가 이제 피싱에 취약하지 않은 2FA를 사용하고 있습니다.
- **45 000+**개의 고유한 인증된 로그인.
신뢰할 수 있는 퍼블리싱 및 어태스테이션
**신뢰할 수 있는 퍼블리싱**은 우리의 보안 전략의 핵심 요소입니다. 올해 우리는 GitLab Self‑Managed 인스턴스에 대한 지원을 확대하여 유지 관리자가 장기 API 토큰 없이도 릴리스를 자동화할 수 있게 했습니다. 또한 조직을 위한 맞춤형 OIDC 발급자를 추가하여 기업이 퍼블리싱 파이프라인을 보다 엄격하게 제어할 수 있게 했습니다.
신뢰할 수 있는 퍼블리싱 도입 현황은 다음과 같습니다:
| Metric | Value |
|---|---|
| 신뢰할 수 있는 퍼블리싱을 사용하는 프로젝트 | 50 000+ |
| 신뢰할 수 있는 퍼블리셔를 통한 파일 업로드 비중 | 20 % |
우리는 또한 어태스테이션 작업을 진행했습니다. 이는 퍼블리셔가 자신의 소프트웨어에 대해 검증 가능한 주장을 할 수 있게 하는 기능입니다. 모든 신뢰할 수 있는 퍼블리싱 제공자에서 어태스테이션을 지원하며, 커뮤니티는 이를 활용해 소프트웨어 공급망을 강화하고 있습니다.
| Metric | Value |
|---|---|
| 어태스테이션을 포함한 업로드 비율 (지난 해) | 17 % |
사전 예방 보안 조치
사용자에게 직접 제공되는 기능 외에도 레지스트리를 공격으로부터 보호하기 위해 여러 사전 예방 조치를 구현했습니다:
- 피싱 방지: PyPI는 이제 신뢰할 수 없는 도메인을 감지하고 사용자에게 경고합니다 – 공지 사항 보기.
- ZIP 파일 보안 강화: 업로드 파이프라인을 강화하여 악성 ZIP 파일을 이용한 공격을 방지합니다 – 자세히 보기 여기.
- 오타 스쿼팅 감지: 프로젝트 생성 시 PyPI가 자동으로 잠재적인 오타 스쿼팅 시도를 감지하고 표시합니다.
- 도메인 부활 방지: 만료된 도메인을 정기적으로 검사하여 부활 공격을 차단합니다 – 상세 내용 여기.
- 스팸 방지: 특정 악용 도메인에서의 등록을 금지하는 등 스팸 캠페인에 대응했습니다 – 블로그 포스트 여기.
투명성 및 사고 대응
올해 우리는 PyPI에 영향을 미치는 보안 사고에 대해 투명하고 시기적절한 커뮤니케이션을 강조했습니다. 여러 사건에 대한 상세 사고 보고서가 다음과 같이 공개되었습니다:
- 조직 팀에서 지속되는 권한 – 보고서 읽기
- PyPI 사용자를 대상으로 한 광범위한 피싱 공격 – 보고서 읽기
- GitHub Actions 워크플로를 통한 토큰 유출 캠페인 – 보고서 읽기
- npm 생태계에 대한 “Shai‑Hulud” 공격의 잠재적 영향 – 보고서 읽기
우리는 투명성이 커뮤니티와의 신뢰를 구축하고 유지하는 데 필수적이라고 믿으며, 필요에 따라 사고 보고서를 계속 발표할 것입니다.
Safety and Support Requests
우리 안전 & 지원 팀과 관리자들은 올해 사용자 요청을 처리하고 악성코드와 싸우며 생태계를 건강하게 유지하기 위해 열심히 노력했습니다. 아래는 주요 성과 요약입니다.
Malware Response
- > 2,000 malware reports processed – 커뮤니티 감시와 관리자 헌신의 증거입니다.
- Response times
- 66 % of reports handled within 4 hours. – **66 %**의 보고서가 4시간 이내에 처리되었습니다.
- 92 % resolved within 24 hours. – **92 %**가 24시간 이내에 해결되었습니다.
- Only a small number of complex cases required the maximum 4 days to remediate. – 복잡한 사례 중 소수만이 최대 4일이 걸렸습니다.
Support Requests
- 2,221 individual account‑recovery requests successfully resolved. – 2,221개의 개별 계정 복구 요청이 성공적으로 해결되었습니다.
- > 500 project‑name‑retention requests (PEP 541) handled
- Average first‑triage time: under 1 week. – 평균 최초 분류 시간: 1주일 미만.
- The previous 9‑month backlog has been cleared, and the queue is up‑to‑date as of December. – 이전 9개월 백로그가 정리되었으며, 대기열은 12월 기준으로 최신 상태입니다.
조직 성장
지난 몇 년간 가장 큰 발표 중 하나는 조직의 일반 이용 가능이었습니다. 조직은 기업 및 커뮤니티 프로젝트에 패키지, 팀, 청구를 관리할 수 있는 중앙화된 장소를 제공합니다.
최근 채택
- 7,742 조직이 PyPI에 생성되었습니다.
- 9,059 프로젝트가 현재 조직에 의해 관리되고 있습니다.
새로운 기능
우리는 조직에 기능을 추가하기 위해 열심히 작업해 왔으며, 다음을 포함합니다:
- 팀 관리
- 프로젝트 이전
- 포괄적인 관리자 인터페이스
우리는 조직이 이러한 기능을 활용하여 PyPI를 보다 효율적으로 사용할 수 있게 되어 기쁩니다.
모든 사람을 위한 더 나은 PyPI
우리는 PyPI에서 전반적인 유지관리자 경험을 개선하기 위해 여러 가지 개선을 했습니다, 포함하여:
-
프로젝트 수명주기 관리 – 이제 프로젝트를 보관하여 더 이상 적극적으로 유지 관리되지 않음을 표시할 수 있습니다. 이는 프로젝트‑상태 마커 (PEP 792)를 표준화하려는 더 큰 노력의 일부입니다.
-
새로운 서비스 약관 – 우리는 정책을 공식화하고 조직과 같은 새로운 기능을 가능하게 하는 새로운 서비스 약관을 도입했습니다.
2026년을 바라보며
우리는 2025년에 이룬 진전에 자부심을 느끼지만, 항상 더 해야 할 일이 있다는 것을 알고 있습니다. 2026년에는 전체 파이썬 커뮤니티를 위해 PyPI의 보안, 안정성 및 사용성을 지속적으로 개선하는 데 집중할 것입니다.
감사
우리 **스폰서**에게 큰 감사를 전합니다. 여러분의 지원 덕분에 PyPI의 규모와 신뢰성을 유지할 수 있습니다. 특히 중요한 인프라를 제공해 주신 Fastly에게 특별히 감사드립니다.
올해 뛰어난 기여를 해주신 몇몇 분들을 소개하고자 합니다:
- William Woodruff – 신뢰할 수 있는 퍼블리싱, 증명 및 보안 향상
- Facundo Tuesca – 프로젝트 보관 및 zip 파일 완화
- Seth Michael Larson – 추가 보안 기능 및 도구
마지막으로, 우리 커뮤니티가 수많은 시간을 기여하지 않았다면 PyPI는 오늘날의 모습을 가질 수 없었을 것입니다. 코드를 작성하고, 이슈를 열고, 문서를 개선하거나 피드백을 제공해 주신 모든 분들께 감사드립니다. 여러분의 노력 덕분에 PyPI가 지속적으로 성장하고 있습니다.
멋진 2026년이 되길 바랍니다!
— Dustin Ingram, PyPI 팀을 대표하여