Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python 개선 제안 한국어 번역

PEP 13 – Python 언어 거버넌스

Author:
The Python core team and community
Status:
Active
Type:
Process
Topic:
Governance
Created:
16-Dec-2018

Table of Contents

번역·라이선스 안내

이 비공식 한국어 번역은 원문 Copyright 절의 Public Domain 조건에 따라 제공합니다. 원저자와 공식 원문은 그대로 표시합니다. 수정되지 않은 기준 원문 · 공식 최신판

초록

이 PEP는 Python의 공식 거버넌스 절차를 정의하고, 그 절차가 시간이 지나면서 어떻게 바뀌어 왔는지 기록합니다. 현재 거버넌스는 운영 위원회를 중심으로 이루어집니다. 위원회는 폭넓은 권한을 가지지만, 그 권한을 되도록 드물게 행사하려고 합니다.

현재 운영 위원회

2026년 임기 운영 위원회는 다음 위원으로 구성됩니다:

  • Barry Warsaw
  • Donghee Na
  • Pablo Galindo Salgado
  • Savannah Ostrowski
  • Thomas Wouters

이는 PEP 8107에서 관리하는 투표 결과에 따른 것입니다.

코어 팀은 비공개 저장소인 https://github.com/python/voters/ 에 등재된 사람들로 구성되며, 이 명단은 https://devguide.python.org/core-team/team-log/ 를 통해 공개적으로 공유됩니다.

명세

운영 위원회

구성

운영 위원회는 5인으로 구성된 위원회입니다.

임무

운영 위원회는 다음을 위해 노력해야 합니다:

  • Python 언어와 CPython 인터프리터의 품질 및 안정성 유지,
  • 기여 활동을 최대한 접근하기 쉽고, 포용적이며, 지속 가능하게 만들기,
  • 코어 팀과 PSF 사이의 관계를 공식화하고 유지하기,
  • PEP에 대한 적절한 의사 결정 절차 수립,
  • 공식적인 자격으로 행동하기 전에 기여자와 코어 팀 사이의 합의 모색,
  • 다른 모든 방법이 실패한 결정에 대해 “최종 항소 법원” 역할 수행.

권한

위원회는 프로젝트에 관한 결정을 내릴 폭넓은 권한을 가집니다. 예를 들어, 위원회는 다음과 같은 일을 할 수 있습니다:

  • PEP 수락 또는 거부
  • 프로젝트 행동 강령의 시행 또는 개정
  • PSF와 협력하여 프로젝트 자산 관리
  • 권한의 일부를 다른 하위 위원회나 절차에 위임합니다

그러나 이 PEP에 명시된 방식을 통하지 않고는 이 PEP를 수정하거나 코어 팀의 구성원 자격에 영향을 줄 수 없습니다.

위원회는 이러한 권한을 가능한 한 적게 사용할 방법을 찾아야 합니다. 투표하기보다는 합의를 추구하는 편이 더 좋습니다. 개별 PEP에 대해 결정을 내리기보다는 PEP 의사 결정을 위한 표준 절차를 정의하는 편이 더 좋습니다(예를 들어, 다른 801x 시리즈 PEP 중 하나를 수락하는 방식으로). 개별 사안에 대해 결정을 내리기보다는 행동 강령 위원회를 설립하는 편이 더 좋습니다. 이런 식으로 계속됩니다.

위원회는 권한을 행사하기 위해 투표를 합니다. 모든 위원은 투표하거나 명시적으로 기권해야 합니다. 특정 투표에 이해 충돌이 있는 위원은 기권해야 합니다. 안건이 통과되려면 기권하지 않은 위원의 과반수 찬성이 필요합니다.

가능한 한 위원회의 심의와 투표는 공개적으로 진행해야 합니다.

위원회 선출

위원회 선거는 두 단계로 이루어집니다:

  • 1단계: 후보자가 위원으로 활동할 의사를 밝힙니다. 후보자는 코어 팀 구성원의 추천을 받아야 합니다. 자기 추천도 허용됩니다.
  • 2단계: 각 코어 팀 구성원은 각 후보자에게 별을 0개에서 5개까지 줄 수 있습니다. 투표는 익명으로 진행됩니다. 투표 결과는 Multi-winner Bloc STAR 방식을 사용하도록 수정한 STAR 투표 시스템을 사용하여 결정합니다. 선거 소프트웨어가 자동으로 해결하지 못하는 동점이 발생하면 후보자 간의 상호 합의로 해결할 수 있으며, 그렇지 않으면 당선자를 무작위로 선정합니다.

각 단계는 퇴임하는 위원회의 재량에 따라 1주에서 2주 동안 진행됩니다. 첫 선거에서는 두 단계 모두 2주 동안 진행됩니다.

선거 절차는 퇴임하는 운영 위원회가 지명한 선거 관리자가 관리합니다. 첫 선거에서는 PSF 사무총장이 선거 관리자를 지명합니다.

위원회는 이상적으로 Python 기여자와 사용자의 다양성을 반영해야 하며, 코어 팀 구성원에게는 이를 고려하여 투표할 것을 권장합니다.

임기

새 위원회는 각 기능 릴리스 이후에 선출됩니다. 각 위원회의 임기는 선거 결과가 확정된 시점부터 다음 위원회의 임기가 시작될 때까지입니다. 임기 제한은 없습니다.

공석

위원은 언제든지 사임할 수 있습니다.

정규 위원회 임기 중에 공석이 생기면 위원회는 투표를 통해 남은 임기를 채울 후임자를 임명할 수 있습니다.

위원회 위원과 연락이 끊겨 한 달 이상 연락이 닿지 않으면 나머지 위원회 위원들이 투표로 그 위원을 교체할 수 있습니다.

이해 상충

위원회 위원들이 자기 자신이나 고용주가 아니라 Python에 가장 이로운 방향으로 행동하리라고 신뢰하지만, 어느 한 회사가 Python 개발을 좌우하는 것처럼 보이는 것만으로도 해로울 수 있으며 신뢰를 약화할 수 있습니다. 이해 상충으로 보일 소지를 없애기 위해 한 고용주에 소속된 위원회 위원은 최대 2명으로 제한합니다.

위원회 선거에서 득표 상위 5명 중 3명이 같은 고용주에 소속되어 있다면, 그중 순위가 가장 낮은 사람은 자격을 잃고 6위 후보가 5위로 올라갑니다. 유효한 위원회가 구성될 때까지 이 과정을 반복합니다.

위원회 임기 중에 상황이 바뀌어 (예를 들어 위원회 위원의 이직으로) 이 규칙에 어긋나게 되면, 문제를 해소하기 위해 위원회 위원 한 명 이상이 사임해야 하며, 그로 인해 생긴 공석은 통상적인 방법으로 채울 수 있습니다.

코어 팀 구성원 제명

예외적인 상황에서는 본인의 의사에 반해 누군가를 코어 팀에서 제명해야 할 수도 있습니다. (예: 심각하고 지속적인 행동 강령 위반.) 이는 운영 위원회 투표로 할 수 있지만, 다른 운영 위원회 투표와 달리 3분의 2 이상의 찬성이 필요합니다. 5명이 투표하는 경우 3:2로는 부족하며, 이러한 투표가 통과되려면 최소 4:1의 찬성이 필요하다는 뜻입니다. 또한 이는 운영 위원회의 권한 중 유일하게 위임할 수 없는 권한이며, 불신임 투표가 진행 중인 동안에는 이 권한을 행사할 수 없습니다.

제명된 코어 팀 구성원이 운영 위원회 위원이기도 하다면 운영 위원회에서도 해임됩니다.

불신임 투표

예외적인 상황에서 코어 팀은 불신임 투표를 통해 현직 위원회 위원 한 명 또는 위원회 전체를 해임할 수 있습니다.

코어 팀 구성원이 적절한 프로젝트 소통 채널에서 공개적으로 불신임 투표를 요구하고, 다른 코어 팀 구성원이 일주일 안에 그 제안에 재청하면 불신임 투표가 시작됩니다.

투표는 2주 동안 진행됩니다. 코어 팀 구성원은 찬성 또는 반대 투표를 합니다. 투표자의 3분의 2 이상이 불신임 의사를 밝히면 투표가 통과됩니다.

불신임 투표에는 두 가지 형태가 있습니다. 위원 한 명을 대상으로 하는 투표와 위원회 전체를 대상으로 하는 투표입니다. 처음 불신임 투표를 요구할 때 어느 형태인지 명시해야 합니다. 위원 한 명을 대상으로 한 투표가 통과되면 해당 위원은 위원회에서 해임되며, 그로 인해 생긴 공석은 통상적인 방법으로 처리할 수 있습니다. 위원회 전체를 대상으로 한 투표가 통과되면 위원회는 해산되고 즉시 새 위원회 선거가 시작됩니다.

코어 팀

역할

코어 팀은 Python을 관리하는, 신뢰받는 자원봉사자들의 모임입니다. 이들은 프로젝트의 목표를 달성하는 데 필요한 여러 역할, 특히 높은 수준의 신뢰가 필요한 역할을 맡습니다. 이들은 프로젝트의 미래를 형성하는 결정을 내립니다.

코어 팀 구성원은 커뮤니티와 Python에 의존하는 모든 사람을 대신하여 커뮤니티의 본보기이자 프로젝트의 관리자로서 행동할 것으로 기대됩니다.

드물게 개입이 필요한 상황이 생기면 이들은 필요에 따라 온라인 토론이나 공식 Python 행사에 개입합니다.

이들은 Python 프로젝트 웹사이트 자체, Python GitHub 조직과 저장소, 버그 트래커, 메일링 리스트, IRC 채널 등을 포함한 Python 프로젝트 인프라에 대한 권한을 가집니다.

특권

코어 팀 구성원은 공식 투표에 참여할 수 있으며, 이 투표는 주로 새 팀 구성원을 지명하고 운영 위원회를 선출하기 위한 것입니다.

멤버십

Python 코어 팀 구성원은 다음을 보여 줍니다:

  • Python 프로젝트의 철학에 대한 충분한 이해
  • 건설적이고 도움이 되는 활동을 꾸준히 해 온 확실한 실적
  • 형태를 불문하고 프로젝트 목표에 대한 상당한 기여
  • Python을 개선하는 데 어느 정도 시간을 할애하려는 의지

프로젝트가 성숙해짐에 따라 기여는 코드에만 국한되지 않습니다. 다음은 코어 팀 합류 시 고려될 수 있는 기여 분야를 순서와 관계없이 나열한 것으로, 전체 목록은 아닙니다:

  • 커뮤니티 관리 및 대외 활동
  • 메일링 리스트와 IRC에서의 지원 제공
  • 티켓 분류
  • 패치 작성 (코드, 문서 또는 테스트)
  • 패치 리뷰 (코드, 문서 또는 테스트)
  • 설계 결정 참여
  • 특정 분야에 대한 전문 지식 제공 (보안, i18n 등)
  • 지속적 통합 인프라 관리
  • 서버 관리 (웹사이트, 트래커, 문서 등)
  • 관련 프로젝트 유지 관리 (대체 인터프리터, 패키징 같은 핵심 인프라 등)
  • 시각 디자인 제작

코어 팀 구성원 자격은 Python 프로젝트의 철학 및 목표와 잘 부합하는, 지속적이고 가치 있는 노력을 인정하는 것입니다.

멤버십은 일주일 동안 진행되는 코어 팀 투표에서 3분의 2 이상의 찬성표를 얻고 운영 위원회의 거부권 행사가 없을 때 부여됩니다.

Note

개발자 가이드에는 이러한 투표에 사용할 권장 템플릿이 있습니다.

코어 팀 멤버는 늘 유망한 기여자를 찾아 프로젝트가 어떻게 운영되는지 가르치고, 준비가 되면 그들의 이름을 코어 팀 투표에 올립니다.

코어 팀 멤버십에는 기한이 없습니다. 다만, 일반 대중이 Python을 유지 관리하는 사람이 얼마나 되는지 합리적으로 가늠할 수 있도록, 기여를 중단한 코어 팀 구성원은 스스로를 “비활성”으로 선언하도록 권장됩니다. 2년 동안 사소하지 않은 기여를 하지 않은 사람에게는 스스로 이 범주로 옮기도록 요청할 수 있으며, 응답이 없으면 이 범주로 옮겨집니다. 이들의 기여를 기록하고 기리기 위해 비활성 팀 멤버는 활성 코어 팀 멤버와 함께 계속 명단에 오르며, 나중에 기여를 재개하면 언제든 원할 때 활성 상태로 돌아갈 수 있습니다. 하지만 비활성 상태인 동안에는 투표권이나 운영 위원회 후보 지명권 같은 활성 멤버 권한과 커밋 권한을 잃습니다.

최초의 활성 코어 팀 멤버는 현재 GitHub의 “Python core” 팀 (코어 멤버만 접근 가능)에 등록된 모든 사람으로 구성되며, 최초의 비활성 멤버는 과거에 커미터였던 나머지 모든 사람으로 구성됩니다.

이 문서의 변경

이 문서를 변경하려면 2주 동안 진행되어야 하는 코어 팀 투표에서 투표수의 3분의 2 이상의 찬성이 필요합니다.

노트 블록과 “현재 운영 위원회” 및 “위원회 선거 이력” 섹션을 최신 정보로 갱신하는 데에는 투표가 필요하지 않습니다.

역사

이 문서의 작성

Python 프로젝트는 귀도 반 로섬(Guido van Rossum)이 시작했으며, 그는 프로젝트 초기부터 2018년 7월 물러날 때까지 자비로운 종신 독재자(Benevolent Dictator for Life, BDFL)로 일했습니다.

논의 끝에 새로운 거버넌스 모델에 대한 여러 제안이 제출되었고, 코어 개발자들은 투표를 통해 그중 하나를 선택했습니다. 전체 과정은 PEP 8000과 PEP 8001에 기술되어 있고, 다른 프로젝트에 대한 검토는 PEP 8002에서 수행되었으며, 제안 자체는 801x 시리즈 PEP로 작성되었습니다. 최종적으로 PEP 8016의 제안이 새로운 거버넌스 모델로 선정되었으며, 이 PEP의 초기 버전을 만드는 데 사용되었습니다. 8000번대 PEP는 역사적 참고 자료로 보존되어 있지만(특히 PEP 8016에는 추가적인 근거와 당시 논의로 연결되는 링크가 담겨 있습니다), 이제는 이 PEP가 공식 참고 문서이며 여기에 기술된 규칙에 따라 발전해 나갈 것입니다.

위원회 선거 이력

개정 이력

  • 2019-04-17: 코어 개발자 투표 기간과 이 문서의 변경에 관한 투표 기간을 추가했습니다.
  • 2024-12-10: 위원회 선거에 다중 당선자 블록 STAR 투표(Multi-winner Bloc STAR voting)를 채택했습니다.
  • 2024-12-10: 불신임 투표 재청에 1주일의 기한을 추가했습니다.
  • 2025-11-12: 선거에 사용되는 소프트웨어가 가능한 경우 동점을 자동으로 해소할 수 있음을 명확히 했습니다.

감사의 글

이 PEP는 PEP 8016으로 시작되었습니다. 이 문서는 Aymeric Augustin이 작성한 Django 거버넌스 문서를 바탕으로 Nathaniel J. Smith와 Donald Stufft가 작성했으며, 다른 많은 사람의 피드백과 도움을 반영했습니다.