Python 개발자 가이드¶
이 가이드는 Python에 기여하기 위한 종합 자료로, 처음 기여하는 분과 경험 많은 기여자 모두를 위한 것입니다. 이 가이드는 Python을 유지 관리하는 바로 그 커뮤니티가 유지 관리합니다. 여러분의 기여를 환영합니다!
하고자 하는 일에 가장 잘 맞는 영역부터 시작하십시오. 이 가이드의 내용을 검토한 후에도 궁금한 점이 남아 있다면, Core Python Mentorship 그룹이 새 기여자가 이 과정을 밟아 나가도록 안내해 드립니다.
문서 |
코드 |
트리아지 |
|---|---|---|
이 가이드의 각 절은 필요할 때마다 읽기를 권장합니다. 모든 내용을 읽고 이해하지 않아도, 충분하다고 느끼는 지점에서 멈추고 바로 기여를 시작할 수 있습니다. 가이드 안에서 여기저기 건너뛰며 읽기로 했다면, 일부 절은 서로를 바탕으로 이어지므로 놓친 개념이나 용어를 찾아 앞으로 되돌아가야 할 수도 있다는 점에 유의하십시오.
오픈 소스 기여에 관한 더 폭넓은 조언을 원한다면, Python 커뮤니티의 여러 사람이 참여해 만든 훌륭한 가이드 모음인 Open Source Guides를 참고하십시오. 예를 들어 How to Contribute to Open Source가 있습니다.
Python 작업을 하기 위해 컴파일러 엔지니어일 필요는 없습니다 – Savannah Ostrowski
빠른 참조¶
참고
빠른 참조 문서는 요약표이자 개요 역할을 하도록 시작하기로 옮겨졌습니다.
새 빠른 참조로 이동하십시오.
Python 자체에 대한 변경 제안하기¶
Python은 끊임없이 발전하는 기술 시스템의 일부로 동작하므로, Python의 코드, 문서, 테스트를 개선하는 일은 결코 “끝나지” 않는 지속적인 작업입니다. 이러한 필수 유지 관리 활동보다 훨씬 더 어려운 지속적인 작업은, 표준 라이브러리와 언어 정의라는 형태의 Python을 개발자의 도구 모음 속에서 한층 더 나은 도구로 만들 방법을 찾는 일입니다.
이러한 종류의 변경은 앞에서 설명한 변경보다 훨씬 드물지만 실제로 일어나며, 그 과정 또한 이 가이드의 일부로 설명되어 있습니다:
주요 자료¶
추가 자료¶
누구나 이 안내서의 소스를 복제할 수 있습니다. 개발자 가이드 개선 돕기를 참조하십시오.
다음에 대한 도움말 …
도구 지원
Misc/ 디렉터리에 있는 구성 파일을 사용하는 다양한 도구
행동 강령¶
Python Software Foundation이 지원하는 인프라에서 이루어지는 모든 상호작용에는 PSF 행동 강령이 적용된다는 점에 유의하십시오. 여기에는 Python 자체의 개발에 사용되는 모든 인프라(예: Discourse, 이슈 추적기, GitHub 등)가 포함됩니다. 일반적으로 이는 프로젝트 내에서의 위치와 관계없이 모든 사람이 열린 태도로 다른 사람을 배려하고 존중해야 한다는 뜻입니다.
다른 인터프리터 구현¶
이 안내서는 특히 CPython이라고도 하는 Python 참조 인터프리터에 기여하기 위한 것입니다(표준 라이브러리의 대부분은 Python으로 작성되어 있지만, 인터프리터 코어는 C로 작성되어 있으며 C 및 C++ 생태계와 가장 쉽게 통합됩니다).
각기 다른 부분에 초점을 맞춘 다른 Python 구현도 있습니다. CPython과 마찬가지로, 이들 역시 하고 싶은 일은 항상 많지만 그 일을 할 개발자는 부족합니다. 관심을 가질 만한 주요 예는 다음과 같습니다:
PyPy: 주요 플랫폼에서 고속(JIT 컴파일) 실행에 초점을 맞춘 Python 인터프리터입니다.
GraalPy: GraalVM 기반으로 구축되었으며, Java에 임베딩하는 것을 퍼스트 클래스(first-class) 수준으로 지원하는 Python 인터프리터입니다.
Jython: Java 가상 머신(JVM) 환경과의 원활한 통합에 초점을 맞춘 Python 인터프리터입니다.
IronPython: .NET과 Mono가 제공하는 공용 언어 런타임(CLR)과의 원활한 통합에 초점을 맞춘 Python 인터프리터입니다.
MicroPython: Python 표준 라이브러리의 작은 부분 집합을 갖추고 마이크로컨트롤러와 제약된 환경에서 실행되도록 최적화된 아주 작은 Python 인터프리터입니다.
CircuitPython: 저가형 마이크로컨트롤러 보드에서 실험하고 코딩을 배우는 일을 쉽게 할 수 있도록 설계된 MicroPython의 포크입니다.
전체 목차¶
- 시작하기
- 빠른 참조
- 설정과 빌드
- “쉬운” 이슈 수정하기(그리고 그 이상)
- Git 부트캠프와 치트 시트
- CPython GitHub 저장소 포크하기
- 포크한 CPython 저장소 클론하기
- 원격 저장소 구성하기
- 원격 저장소 나열하기
- 이름과 이메일 주소 설정하기
- Windows에서
autocrlf활성화하기 - 브랜치 생성 및 전환
- 브랜치 삭제하기
- 브랜치 이름 변경하기
- 파일 스테이징 및 커밋하기
- 변경 사항 되돌리기
- 변경 사항 스태시하기
- 변경 사항 비교하기
- 변경 사항 푸시하기
- 풀 리퀘스트 만들기
- 이슈와 풀 리퀘스트에 링크하기
- CPython 포크 업데이트하기
- Git에 패치 적용하기
- 다른 사람의 풀 리퀘스트 체크아웃하기
- 풀 리퀘스트 수락 및 병합하기
- 자동 병합 취소하기
- 병합된 변경 사항 백포트하기
- 병합 전에 풀 리퀘스트 편집하기
- GitHub CLI
- Git 워크트리
- 풀 리퀘스트의 수명 주기
- 도움을 받을 수 있는 곳
- AI 도구 사용 지침
- 개발 워크플로
- 이슈와 트리아지
- 문서
- 테스트와 빌드봇
- 개발 도구
- 코어 팀
- 보안
- CPython의 내부 구조
- Python 버전 상태