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

Python 개선 제안 한국어 번역

PEP 8011 – 파이썬 프로그래머 삼인조가 이끄는 Python 거버넌스 모델

Author:
Mariatta <mariatta at python.org>, Barry Warsaw <barry at python.org>
Status:
Rejected
Type:
Informational
Topic:
Governance
Created:
24-Aug-2018

Table of Contents

번역·라이선스 안내

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

초록

이 PEP는 동등한 권한을 가진 세 명의 리더가 이끄는 Python 핵심 개발 커뮤니티의 거버넌스 모델을 제안합니다. Python 프로그래머 삼인조(ToP, 또는 간단히 Trio)는 언어에 관한 최종 결정을 내리는 역할을 맡습니다. 중앙의 단일 리더를 제안하지 않고 대신 세 명의 그룹을 리더로 제안한다는 점에서 PEP 8010과 다릅니다.

이 PEP는 또한 지도부 삼인조의 의사 결정을 지원할 전문 작업 그룹의 구성을 제안합니다.

이 PEP는 Trio의 구성원을 명시하지 않습니다. 이 모델이 채택될 경우, 이 PEP에 설명된 모든 직책 보유자의 이름과 함께 PEP 13에 명문화됩니다.

이 PEP는 다음을 설명합니다:

  • Trio의 역할과 책임
  • 삼인조 구성원을 구성하는 방식에 관한 지침
  • 단일 리더 대신 세 명의 그룹을 두는 이유
  • 삼인조에 대한 Python 코어 개발자의 역할과 책임
  • 지속 가능성 고려 사항
  • 다양성과 포용성 고려 사항

PEP 거부

PEP 8011PEP 8001에 설명된 2018년 12월 17일 월요일의 by a core developer vote에 의해 거부되었습니다.

대신 PEP 8016과 해당 PEP가 설명하는 거버넌스 모델이 선택되었습니다.

공개 토론 사항

거버넌스 논의 과정에서 이 PEP의 매개변수는 Trio의 정확한 책임, 임기, 투표 절차, 삼인조의 해체 등 여러 측면에서 조정될 수 있습니다. PEP가 투표에 부쳐질 준비가 될 때까지 이러한 내용은 명문화됩니다.

이 모델에 대한 경험이 쌓이면 더 원활한 거버넌스 과정을 제공하기 위해 이러한 매개변수가 조정될 수 있다는 점은 허용되며, 어쩌면 예상되기도 합니다. 이러한 매개변수를 조정하는 과정은 일반적으로 PEP 8001에 설명된 것과 동일한 투표 절차를 따릅니다.

지도부 삼인조의 역할과 책임

  • 개방적이고 사려 깊으며 존중하는 태도를 유지하십시오. 다시 말해, The PSF의 행동 강령을 준수하십시오.
  • 팀으로 PEP에 판정을 내리거나, 다른 삼인조 구성원들이 동의하는 경우 개별적으로 판정을 내리십시오.
  • 프로그래밍 언어인 Python과 그 커뮤니티에 비전과 리더십을 제공하십시오.
  • 자신의 한계를 이해하고 필요할 때마다 조언을 구하십시오.
  • 차세대 리더에게 멘토링을 제공하십시오.
  • Python 코어 개발자이십시오.
  • The PSF의 투표권 있는 회원(Contributing / Manager / Fellow / Supporter 중 하나)이 되십시오. [2]
  • Python은 단순한 언어일 뿐만 아니라 커뮤니티이기도 하다는 점을 이해해야 합니다. Python의 기술적 측면뿐만 아니라 커뮤니티의 다른 문제도 인식해야 합니다.
  • Core Python 내에서 전문 작업 그룹의 결성을 촉진하십시오. 아래의 “전문 작업 그룹의 결성” 섹션을 참조하십시오.
  • Python 커뮤니티에 행동, 문화, 어조의 좋은 본보기를 보여 주십시오. Python이 영감을 얻기 위해 다른 커뮤니티를 살펴보고 배우는 것처럼, 다른 커뮤니티도 Python을 살펴보고 우리에게서 배울 것입니다.

트리오의 권한

분쟁이 발생하는 경우를 대비하여 명확히 하자면, 트리오는 PEP(거버넌스 PEP 제외)에 대해 최종적으로 판정하고, 특정 결정에 PEP가 필요한지 결정하며, 일반적인 기술적 분쟁을 해결할 최종 권한을 가집니다. 트리오의 권한에는 거버넌스 자체를 변경하는 일이나 발생할 수 있는 기타 비기술적 분쟁이 포함되지 않습니다. 이러한 문제는 PEP 8001에 설명된 절차를 통해 처리해야 합니다.

트리오의 역할 책임으로 간주되지 않는 사항

다음 사항은 트리오에 기대되는 역할이 아니지만, 원한다면 수행할 수 있습니다.

  • 트리오가 항상 모든 아이디어, 비전, 해결해야 할 문제 및 기타 모든 것을 제시하는 것은 아닙니다. 트리오는 핵심 개발자와 커뮤니티의 제안을 열린 자세로 받아들일 것입니다.
  • 일상적인 버그 보고에는 트리오의 개입이 필요하지 않습니다. 모든 핵심 개발자는 결정을 내릴 수 있지만, 해당 전문 작업 그룹에 결정을 위임하고, 핵심 개발자 사이에 중대한 의견 불일치가 발생하면 최종적으로 트리오에 결정을 위임합니다.
  • Python 언어 서밋과 그 운영을 주관하거나 결정하지 않습니다.
  • Python 코어 스프린트와 그 운영을 주관하거나 결정하지 않습니다.
  • CoC 사안을 처리하지 않습니다. 그러한 사안은 PSF CoC 작업 그룹의 책임이지만, 그러한 사안을 목격하면 공개적으로 발언합니다.
  • 다른 Python 구현(Cython, IronPython 등)에 관한 결정을 내리지 않습니다.
  • Python 콘퍼런스와 그 운영을 주관하거나 결정하지 않습니다.
  • Python의 전도자가 아닙니다. 트리오는 Python을 설교하거나 홍보할 것으로 기대되지 않습니다. 원한다면 그렇게 할 수 있지만, 기대되는 역할은 아닙니다.
  • Python의 교육자가 아닙니다. 트리오는 Python을 가르치거나 Python에 관해 글을 작성할 것으로 기대되지 않습니다. 원한다면 그렇게 할 수 있지만, 기대되는 역할은 아닙니다.
  • 트리오는 1년 365일, 하루 24시간 내내 이용 가능할 것으로 기대되지 않습니다. Python을 위해 언제 이용 가능한지는 스스로 자유롭게 결정할 수 있습니다.
  • PEP 편집자가 아닙니다.

트리오 구성 지침

이 거버넌스 모델의 성공은 트리오 구성원과 트리오 구성원들이 서로 협력하고 원활하게 함께 일할 수 있는 능력에 달려 있습니다.

세 사람은 Python과 비슷한 비전을 공유해야 하며, 각자 서로를 보완하는 서로 다른 역량을 갖출 수 있습니다.

이러한 팀에서는 의견 불일치와 갈등이 드물어야 하지만, 여전히 발생할 수 있습니다. 우리가 선정한 사람들이 이 문제를 서로 해결할 수 있다고 신뢰해야 합니다.

세 사람으로 이루어진 팀의 구성원을 선정할 때에는 여러 개인을 후보로 지명하여 상위 세 명을 선택하는 대신, 핵심 개발자들이 세 사람으로 이루어진 팀을 후보로 지명하고 이 통합된 팀을 구성할 수 있다고 믿는 세 사람 단위의 그룹에 투표합니다. 한 개인이 하나의 후보 조합에만 지명되어야 한다는 제한은 없습니다.

이 PEP에서는 해당 팀에 누구를 지명하거나 이름을 올리지 않습니다.

이 PEP가 승인된 후에만, 투표 자격이 있는 모든 현역 핵심 개발자가 세 사람으로 이루어진 그룹을 후보로 지명할 수 있습니다.

이 PEP가 승인되고 핵심 개발자들이 후보를 제출하면 투표를 시작할 수 있으며, PEP 8001에 설명된 투표 메커니즘을 사용합니다.

해당 팀에 요구되는 자질:

  • Python 핵심 개발자여야 합니다.
  • 투표권이 있는 PSF 회원(Contributing / Manager / Fellow / Supporter 중 하나)이어야 합니다. [2]
  • 평판이 좋은 커뮤니티 구성원이어야 합니다.
  • PSF의 행동 강령을 준수해야 합니다(개방적이고, 사려 깊으며, 존중하는 태도를 가져야 합니다). [1]
  • 명시된 역할과 책임을 받아들일 의지가 있어야 합니다.
  • 효과적으로 소통하고 자신의 생각을 명확하게 표현할 수 있어야 합니다.

다음은 해당 팀에 누군가를 고려할 때 요구 사항이 아닙니다.

  • “무언가의 BDFL이었던 경험”은 요구 사항이 아닙니다.
  • “천재일 것”은 요구 사항이 아닙니다.

다양성과 포용성

Python 개발 팀은 Python Software Foundation의 다양성 선언을 전적으로 지지하며, 다양한 배경을 가진 사람들의 참여와 기여를 환영합니다. Python 핵심 개발자들은 팀의 일원으로 사람들을 지명할 때 대표성이 부족한 집단의 구성원을 포함하는 것을 고려하기 위해 모든 노력을 기울입니다.

이상적으로는 후보 지명이 Python 핵심 기여자들의 다양성을 포함하고 반영해야 합니다.

지속 가능성

고용주의 지원 부족이나 자유 시간의 부족은 팀에 누가 포함되어야 하는지를 판단할 때 고려 요소가 되어서는 안 됩니다. 핵심 개발자들이 팀의 구성원에게 필요한 역량을 갖췄다고 판단한 사람이 있지만 시간이나 재정적 지원의 부족으로 이를 수행할 수 없다면, 필요한 지원을 제공할 수 있도록 PSF 또는 다른 관계자들과 논의를 시작해야 합니다.

추가 지침

자신이 아닌 다른 사람을 지명할 때에는 먼저 비공개로 지명을 받아도 괜찮은지, 그리고 해당 세 사람으로 이루어진 그룹에 지명되어도 괜찮은지 물어보십시오. 이는 사람들이 지명이 공개적으로 이루어졌다는 이유만으로 지명을 받아들여야 한다는 압박을 느끼지 않도록 하기 위한 것입니다.

다른 거버넌스 모델은 왜 사용하지 않습니까?

Python 핵심 커뮤니티는 20년이 넘도록 단일 BDFL 모델에 익숙하며, 이 모델은 Python에서 “작동해 온” 모델입니다. 갑자기 완전히 다른 모델로 전환하면 커뮤니티의 안정성이 저해될 수 있습니다. 그러나 커뮤니티는 앞으로도 계속 발전해 나갈 수 있습니다.

이 PEP가 선택되더라도, 향후 Python을 위한 유일한 거버넌스 모델을 의미하는 것은 아닙니다.

이 PEP는 (비록 소수이지만) 한 그룹의 사람들이 이끄는 커뮤니티로의 전환을 제안하는 동시에, 추가적인 전문 작업 그룹이라는 개념도 도입했습니다.

왜 세 명을 넘지 않는가

요리사가 너무 많으면 수프를 망칩니다.

리더십 팀을 두는 목표는 Python 핵심 개발자 팀이 합의에 도달하고 결정을 내릴 수 있도록 하는 것입니다. 리더십 팀의 규모가 클수록 결정을 내리기가 더 어려워집니다.

이는 트리오 구성원들에게도 도움이 됩니다. 팀에서 다른 사람들과 협력하는 법을 배우는 일은 자연스럽게 이루어지는 것이 아니며 많은 노력이 필요합니다. 트리오 구성원들이 장기간 팀의 일원으로 활동할 것으로 예상됩니다. 다른 두 사람과 협력해야 하는 일만으로도 아마 충분히 어려울 것입니다. 트리오가 자신의 의무와 책임을 최대한 효율적으로 수행할 수 있기를 바랍니다.

그룹에 사람이 많을수록 만나고 토론하며 결정을 내릴 시간을 마련하기가 더 어려워집니다.

Python 핵심 개발자가 트리오에 대해 갖는 역할과 책임입니다.

  • 개방적이고 사려 깊으며 존중하는 태도를 가지십시오. 다시 말해, PSF의 행동 강령을 준수하십시오.
  • 트리오의 개별 구성원이 내린 결정과 발표는 권위가 있으며 트리오에서 나온 것으로 간주됩니다.
  • 트리오가 결정을 발표하면, 핵심 개발자들은 처음부터, 즉 트리오가 그러한 결정을 내리기 전부터 지지하지 않았더라도 이를 지지합니다.
  • 버그 추적기에서 일상적인 의사 결정을 계속 내리고, 중대한 의견 불일치가 있을 경우 트리오에 따르십시오.
  • Python 핵심 개발자는 CoC 사건을 처리하지 않으며, 이는 CoC 작업 그룹의 책임이지만, 그러한 사건을 목격하면 목소리를 냅니다.
  • 자신들이 기술적인 측면만이 아니라 더 큰 Python 커뮤니티의 일부임을 인식합니다.
  • 의결권이 있는 PSF 회원(Contributing / Manager / Fellow / Supporter 중 하나)이 되십시오.
  • Python 커뮤니티에 행동, 문화 및 분위기에서 좋은 본보기를 보이십시오.

임기 제한입니다.

트리오가 평생 활동할 것으로 예상되지는 않지만, 더 긴 임기가 바람직합니다. 더 긴 기간 동안 활동하는 목적은 불필요하게 “선출”해야 하는 잦은 변동을 피하고, 언어와 커뮤니티의 안정성과 일관성을 제공하는 것입니다.

현재 Python 릴리스 관리자는 5년(릴리스 주기 1회) 동안 직위를 유지하며, 지금까지는 이것이 잘 작동하는 것으로 보입니다. 따라서 이 PEP는 트리오가 5년 동안 직위를 유지할 것을 제안합니다.

트리오의 승계 계획(논의 중)입니다.

트리오는 후임자 차세대 인력을 적극적으로 멘토링하고 교육할 수 있도록, 또한 권력 공백을 피할 수 있도록 자신의 역할을 해산하거나, 은퇴하거나, 그만둘 의사를 최소 1년 전에 핵심 개발자들에게 알려야 합니다.

트리오가 반드시 차기 지도자를 직접 선택해야 하는 것은 아닙니다.

이 PEP는 다음 세대에 동일한 거버넌스 모델을 선택하도록 강제하지 않습니다. 언어이자 커뮤니티인 Python은 계속 발전할 수 있습니다. 해산 1년 전 사전 통지를 함으로써, 세 사람은 핵심 Python 커뮤니티가 이 거버넌스 모델의 성공과 실패를 성찰하고, 필요한 경우 다른 거버넌스 모델을 선택할 기회를 제공합니다.

그러나 다음 거버넌스 모델과 리더는 세 사람이 해산 의사를 발표한 후 1년 이내에 선택되거나 선출되어야 합니다.

이 거버넌스 모델을 계속 유지하기로 결정한다면, 다음 세대의 세 사람은 첫 번째 세 사람이 지명되고 선택된 방식과 유사한 방식으로 지명되고 선출됩니다.

세 사람은 최소 X개월 동안 다음 세대의 선출된 리더들에게 자문자이자 멘토로서 활동해야 합니다.

미래의 세 사람은 Python 핵심 개발자 중에서 선택될 것이므로, 미래의 Python 핵심 개발자들이 이 PEP에 제시된 세 사람의 자질을 일부 갖추되 반드시 모두 갖출 필요는 없도록 하는 것이 타당합니다.

따라서 세 사람의 구성원을 선정하기 위한 지침은 미래의 Python 핵심 개발자를 식별할 때의 지침으로도 사용할 수 있습니다.

세 사람 중 한 명이 그만두어야 하는 경우의 시나리오

효과적인 거버넌스 모델은 직을 내려놓거나 리더십 활동을 일시 중단해야 하는 리더를 위한 이탈 경로 또는 일시적 휴식 기간을 제공합니다.

예기치 못한 사유로 선정된 세 사람 중 한 명이 그만두어야 한다면 어떻게 해야 합니까?

가능한 선택지는 다음과 같습니다.

  • 남은 두 사람이 그 역할을 대신할 다른 구성원을 선정할 수 있습니다.
  • 세 사람이 해산하기로 선택하고, 핵심 개발자들이 다른 세 사람의 조합을 지명할 수 있습니다.
  • 핵심 개발자들이 다른 거버넌스 모델을 선택할 수 있습니다.

세 사람은 명부로 선출되었으므로, 한 사람을 잃으면 선출된 그 단위가 해체되기 때문입니다. 따라서 새로운 선거를 실시해야 합니다.

작업 그룹/전문 분야/소유권의 구성(이전에는 BDFL 위임자)

(논의의 여지가 있습니다.)

핵심 Python과 Python 커뮤니티의 특정 영역 및 주제에는 특정 전문 기술을 갖춘 리더가 필요합니다. 세 사람이 의사 결정을 내리는 데 도움을 주도록 해당 영역에서 더 큰 권한을 가진 여러 작업 그룹을 구성하는 것이 권장됩니다.

이러한 “전문 작업 그룹/위원회”의 역할은 각자의 영역에서 발생하는 논쟁적인 논의에 대해 최종 의사 결정자가 되는 것입니다.

리더십을 담당하는 세 사람의 그룹이 소규모인 것과 유사한 이유로, 이러한 작업 그룹도 소규모(3~5명)여야 합니다.

이러한 작업 그룹은 Python 핵심 개발자와 외부 전문가로 모두 구성되어야 합니다. 이는 의사 결정이 Python 핵심 개발자만을 편들지 않도록 보장하기 위한 것입니다.

Python 핵심 개발자들은 각자의 주제에 관한 의사 결정을 이러한 작업 그룹에 위임합니다. 그러나 이러한 그룹은 세 사람에게 보고하고 그들의 결정에 따릅니다.

이러한 작업 그룹은 이 PEP가 승인된 후에만 선정할 수 있으며, 구성원은 투표로 선출할 수 있습니다.

이 PEP가 승인되면, PEP 승인 후 1~2년 이내에 작업 그룹을 구성할 수 있습니다.

이러한 특별 작업 그룹의 구성원을 선정할 때 세 사람은 대표성이 낮은 집단의 구성원을 포함하는 것을 고려하기 위해 모든 노력을 기울입니다. 이상적으로는 작업 그룹의 구성원이 더 넓은 Python 커뮤니티의 다양성을 포함하고 반영해야 합니다.

이 작업 그룹의 구성원은 Python 핵심 개발자일 필요는 없지만, 최소한 PSF [2]의 기본 회원이어야 합니다.

이 워킹 그룹은 트리오가 활동하는 동안 활동합니다.

시작할 것을 제안하는 몇 가지 워킹 그룹은 다음과 같습니다.

  • CPython 문서화
  • CPython 보안
  • CPython 성능

이 워킹 그룹은 이전에 알려진 “BDFL-delegate” 또는 PEP 차르의 역할과 유사한 역할을 하는 것으로 볼 수 있습니다. 차이점은 의사 결정자로 한 사람을 임명하는 대신, 소규모 의사 결정자 팀이 구성된다는 점입니다.

이전의 “BDFL-delegate” 역할과 다른 또 한 가지 점은, 이 그룹이 전문 지식을 필요로 하는 PEP가 있을 때만 활동하는 것이 아니라 트리오가 활동하는 동안 계속 활동할 수 있다는 점입니다.

트리오가 해체되면 이 워킹 그룹도 해체됩니다.

이 워킹 그룹이 필요한 이유

이는 이전 Python BDFL의 ‘큰 역할을 리팩터링하는’ 노력입니다.

PSF의 회원임을 확인

이 PEP는 핵심 개발자와 트리오 구성원이 자신을 PSF의 회원으로 자체 인증할 것을 제안합니다.

PSF의 일원이 된다는 것은 Python 커뮤니티의 일원이 되어 PSF의 사명과 다양성 선언을 지지한다는 의미입니다.

PSF의 회원이 됨으로써 Python 핵심 개발자는 Python에 대한 지지를 선언하고 커뮤니티 행동 강령을 준수하는 데 동의합니다.

PSF 회원 자격에 대한 자세한 내용은 PSF Membership FAQ [2]를 참조하십시오.

trio라는 이름을 선택한 이유

Python trio(비동기 라이브러리)와 혼동하지 마십시오.

“trio”는 짧고 발음하기 쉽지만, triad, trinity, triumvirate, threesome 등처럼 길고 부정적인 해석을 낳을 수 있는 다른 단어와는 다릅니다.

참고 자료