Wolverine은 파이썬 스크립트 실행 중 에러가 발생했을 때 GPT-4를 활용해 코드를 자동으로 수정하고 에러 원인을 분석하는 "자가 치유" 도구입니다. 여러 개의 버그가 있더라도 문제가 해결될 때까지 반복적으로 수정을 시도하는 강력한 기능을 제공합니다. 이 글에서는 Wolverine 프로젝트의 생태계에 참여하여 코드를 기여하는 전체 프로세스를 상세히 살펴봅니다.
1. 개발 환경 구축하기
기여를 시작하기 전에 로컬 머신에 개발 환경을 구성해야 합니다. 다음 단계를 따라 프로젝트를 설정하세요.
# 저장소 복제
git clone https://gitcode.com/gh_mirrors/wo/wolverine
cd wolverine
# 가상환경 생성 및 활성화
python3 -m venv .venv_wolverine
source .venv_wolverine/bin/activate
# 의존성 패키지 설치
pip install -r requirements.txt
# 환경 변수 설정
cp .env.sample .env
설정된 .env 파일에 OpenAI API 키를 입력하면 기본적인 실행 준비가 완료됩니다.
주요 프로젝트 구조
wolverine/wolverine.py: GPT와의 상호작용 및 에러 처리 로직이 담긴 핵심 엔진입니다.examples/: 테스트를 위한 다양한 버그 시나리오 파일들이 포함되어 있습니다.tests/: 유닛 테스트 코드가 위치하며,test_wolverine.py를 통해 로직을 검증합니다.
2. 버그 발견 및 리포팅
Wolverine을 사용하다가 다음과 같은 현상이 발생하면 버그 리포트를 작성할 수 있습니다.
- 스크립트가 중단되었으나 적절한 수정 제안이 생성되지 않는 경우
- 제시된 수정안이 오히려 새로운 오류를 유발하는 경우
- CLI 인자가 의도한 대로 동작하지 않는 경우
- OpenAI API 응답 처리 중 예외가 발생하는 경우
버그 리포트 시에는 재현 방법, 기대 결과, 실제 발생 결과, 에러 로그(wolverine.py 출력물), 시스템 환경(OS, Python 버전)을 명확히 기재해야 빠른 처리가 가능합니다.
3. 코드 수정 및 구현
실제 코드를 수정할 때는 다음의 워크플로우를 권장합니다.
브랜치 생성 및 구현
# 새로운 작업 브랜치 생성
git checkout -b feature/refactor-error-handler
코드를 수정할 때는 examples/ 디렉토리에 있는 샘플 파일들을 활용해 문제를 재현해보고, 수정 사항이 기존 로직과 충돌하지 않는지 확인합니다. 모든 파이썬 코드는 PEP 8 스타일 가이드를 준수해야 하며, 복잡한 로직에는 주석을 추가하는 것이 좋습니다.
테스트 수행
코드 수정을 마친 후에는 반드시 기존 테스트를 통과해야 합니다.
# pytest를 이용한 테스트 실행
pytest tests/
4. Pull Request(PR) 제출
변경 사항을 제안할 준비가 되었다면 다음 절차를 진행합니다.
- 로컬 변경 사항을 커밋합니다. 커밋 메시지는
fix: resolve indentation issue in gpt output과 같이 명확하게 작성합니다. - 자신의 원격 저장소에 푸시합니다:
git push origin feature/refactor-error-handler - GitHub 또는 GitCode 저장소에서 'New Pull Request'를 생성합니다.
- PR 본문에 수정 이유, 구현 방식, 테스트 결과에 대한 상세 내용을 작성합니다.
5. 추가 기여 가능 분야
단순한 버그 수정 외에도 Wolverine의 성능을 높이기 위한 다양한 로드맵이 존재합니다.
- 사용자 확인 모드: GPT가 제안한 수정을 적용하기 전 사용자의 승인을 받는 플래그 기능
- 포맷팅 개선: GPT 응답에서 인덴트(들여쓰기)가 깨지는 문제 해결 로직 강화
- 다중 파일 지원: 단일 스크립트가 아닌 여러 파일로 구성된 프로젝트 단위의 에러 수정
- 언어 확장: 파이썬 외의 다른 프로그래밍 언어 지원 모듈 개발
코드 리뷰를 통해 전달받은 피드백을 반영하며 프로젝트와 함께 성장할 수 있습니다. 여러분의 기여는 Wolverine이 더 정교하게 코드를 치유하는 데 큰 도움이 됩니다.