728x90
반응형
PEP 이란?
- PEP (Python Enhancement Proposal)
- Python 에 새로운 기능을 제안하거나, 설계 철학/가이드라인, 개발 프로세스 등을 정리한 공식 문서
- Python 개발 과정의 투명성과 합의를 위해 운영
- Informational PEP
- 사용자에게 파이썬 철학, 코딩 스타일, 권장 방법 등을 공식적으로 안내하기 위함
- 주로 Python 핵심 개발자 (core developers) 또는 Steering Council 이 직접 작성
- 이미 core 개발자들이 작성하고 공식 안내 목적으로 배포한 문서이므로 별도의 채택 과정 없음
- Standards Track PEP
- Python 에 어떤 기능을 추가하거나 변경하고 싶다는 아이디어 + 설계 + 최소 구현 예시를 문서화한 것
- Python 개발자들도 제안할 수 있고, 일반 사용자나 외부 개발자도 제안 가능
- Process PEP
- Python 개발 과정, Python 커뮤니티와 의사결정 구조를 어떻게 운영할지 커뮤니티 운영, 정책 변경 등을 다룸
- 주로 Python 핵심 개발자 (core developers) 또는 Steering Council 이 직접 작성
- 이미 core 개발자들이 작성하고 공식 안내 목적으로 배포한 문서이므로 별도의 채택 과정 없음
- Informational PEP
작은 버그 수정, 단순한 최적화, 내부 코드 리팩토링 이외의 Python 의 대부분의 기능 구현은 투명성을 위해 반드시 PEP 를 거쳐야 합니다.
PEP 작성과 승인 과정
- PEP 초안 (draft) 제출시 Python core developer 가 PEP Editor 로서 문서 검토 후 공식 PEP 번호 부여 및 PEP 목록에 등록
- Steering Council 등 의사결정 기구가 심사를 통해 “Accepted / Rejected / Deferred” 등의 상태 결정
- Accept 될 경우의 프로세스는 "Accept → 구현 시작 → 이후 릴리스 중 적절한 시점에 포함" 을 따름
- 구현 완료 및 릴리스 반영된 경우 Final 상태로 변경
Informational PEP 와 Process PEP 은 사실상 모든 합의를 거친 후 draft 를 제출하기 때문에 draft 제출과 동시에 PEP 목록에 등록되며 따로 Accept 과정이 없습니다.
Rejected 혹은 Deferred 된 문서도 히스토리 유지를 위해 삭제되지 않고 보존됩니다.
Informational PEP 와 Process PEP 의 경우 PEP 목록에 등록후 합의 확인 후 대체로 Final 혹은 종종 Active 상태를 부여받으며 더이상 해당 문서의 효력이 없어질 경우 Superseded 혹은 Withdrawn 상태로 변경되어 보관됩니다.
PEP 문서 수정
- PEP 목록에 등록된 상태에서도 Accept 이전까지는 자유롭게 수정 가능
- Standards Track PEP 의 경우 Accept 이후부터는 오탈자 수정정도만 가능하며 기능을 수정할 경우 아예 새로운 PEP 를 작성해야함
- Informational PEP 와 Process PEP 의 경우 Active 상태일때는 계속해서 수정이 가능하며 Final 및 Superseded 혹은 Withdrawn 상태로 변경되면 약간의 오탈자 수정을 제외하고는 더이상 수정 불가능
유명한 PEP 문서
파이썬 커뮤니티에서 널리 참고되거나 필수적으로 읽히는 PEP 들이 있습니다.
- Informational PEP: PEP 8, PEP 20, PEP 257 등
- Standards Track PEP: PEP 3333, PEP 484, PEP 572 등
- Process PEP: PEP 1, PEP 8016 등
728x90
반응형
'기타 지식' 카테고리의 다른 글
패키지, 라이브러리, API (3) | 2025.04.10 |
---|---|
nvidia-smi, nvcc --version, CUDA, cuDNN (5) | 2025.01.06 |
Parameter (매개변수) vs Argument (인자) (4) | 2024.09.23 |