지난 1년간 Oh My Zsh 프로젝트에서는 AI 도구에 크게 의존하는 기여가 눈에 띄게 증가했습니다. 이러한 기여는 다음과 같은 문제점을 야기했습니다.
AI 활용 기여의 문제점
-
과도한 범위와 복잡성: 초보 기여자들이 제출하는 풀 리퀘스트(PR)의 규모가 커지고, 불필요하게 광범위한 코드베이스를 건드리며, 명시된 목표와 무관한 변경 사항을 포함하는 경우가 많았습니다.
-
이해 부족: PR 설명과 후속 댓글은 세련되어 보이지만 실제 구현과는 동떨어져 있어, 기여자가 제안하는 변경 사항을 진정으로 이해하고 있는지 판단하기 어려운 경우가 빈번했습니다.
-
리뷰 병목 현상: AI가 아무리 빠르게 코드를 생성하더라도, 광범위하고 추론하기 어려운 PR은 유지보수자의 검토 시간을 과도하게 소모시킵니다. 이는 오픈 소스에서 가장 귀한 자원인 자원 봉사자의 시간을 낭비하게 만들며, AI는 이러한 제약을 제거하기보다 오히려 증폭시키는 경향이 있습니다.
Oh My Zsh의 접근 방식
Oh My Zsh 팀은 AI 사용을 금지하거나 별도의 정책으로 다루기보다는, 기존 기여 가이드라인(CONTRIBUTING.md)에 AI 지원 기여에 대한 지침을 통합하는 방식을 택했습니다. 구체적으로는 “AI 도구 사용” 섹션을 추가하고 PR 템플릿을 업데이트하여 기여자가 작업에 AI를 사용했는지 여부를 공개하도록 했습니다.
핵심 원칙: 코드 소유권과 책임
새로운 가이드라인의 핵심은 “제출하는 코드에 대한 소유권”입니다. 이는 AI 사용 여부와 관계없이 모든 기여자에 적용되는 기본적인 원칙입니다.
-
완전한 이해: 기여자는 코드의 모든 라인을 이해해야 합니다.
-
설명 능력: 변경 사항과 그 이유를 명확하게 설명할 수 있어야 합니다.
-
철저한 테스트: 변경된 부분을 직접 테스트해야 하며, 작업 범위를 명확히 유지해야 합니다.
-
디버깅 능력: 문제가 발생할 경우, AI 재생성 없이 스스로 디버깅할 수 있어야 합니다.
인간의 역할 강조
저자가 GitHub Copilot을 사용하여 링크를 업데이트한 사례에서 볼 수 있듯이, AI가 작업을 보조하더라도 인간의 검토, 문제 발견, 수정, 그리고 최종 병합 결정은 변하지 않습니다. 모든 승인은 유지보수자가 커뮤니티를 대표하여 정보에 입각한 결정을 내리는 것을 의미하며, AI는 이 책임을 제거하는 것이 아니라 오히려 증가시킵니다. Oh My Zsh는 기여자가 코드를 설명하고, 테스트 방식을 시연하며, 범위 조정을 요청하거나, 기준에 미치지 못하는 변경 사항을 거부할 권리를 보유합니다. 이는 오픈 소스에서 가장 제한적인 자원인 자원 봉사자의 시간을 보호하기 위함입니다.