목록으로

Programming Notes

AI 시대의 오픈 소스 메인테이너십

AI는 소프트웨어 개발의 판도를 정말로 바꿔 놓았습니다. 그 어느 때보다 많은 사람이 자신이 사용하는 프로젝트에 패치를 기여하기 위해 AI를 활용하고 있습니다. 개인적으로 더 많은 사람이 프로젝트를 포크하거나 방치하는 대신 패치를 기여하게 된다는 점에서 이는 긍정적인 현상이라고 생각합니다. 하지만 주요 문제는 AI가 코드 생성 속도는 획기적으로 높였으나, 코드베이스를 유지 관리(maintenance)하는 측면에서는 거의 개선이 이루어지지 않았다는 점입니다. 이 글에서는 쿠버네티스(Kubernetes) 커뮤니티가 AI 기반 코딩 환경에 어떻게 적응하고 있는지 살펴보겠습니다.

이 여정의 첫 번째 단계는 AI 정책을 수립하는 것이었습니다. 이는 따분하고 관료적인 일처럼 보일 수 있지만, 실제로 많은 PR(Pull Request)이 AI 사용 여부에 대한 논쟁으로 번져 본질에서 벗어나는 경우가 많았습니다. AI 정책은 프로젝트의 입장을 명확히 하여 대화의 방향을 잡아주고, 기여자들에게 도구를 책임감 있게 사용하는 방법에 대한 분명한 신호를 제공합니다.

쿠버네티스 AI 정책

쿠버네티스 프로젝트는 혁신과 책임 사이의 균형을 맞추기 위해 AI 지원 기여에 대한 명확한 가이드라인을 마련했습니다. 이 정책은 AI 도구가 개발 과정에서 가치 있는 보조 수단이 될 수 있음을 인정하면서도, 코드 품질을 유지하고 인간의 감독을 보장하도록 설계되었습니다.

투명성 우선

기여자는 PR을 작성할 때 AI 도구의 도움을 받았는지 여부를 공개해야 합니다. PR 설명에 "이 PR은 생성형 AI의 도움을 받아 일부 작성되었습니다"와 같은 간단한 문구를 포함하는 것으로 충분합니다. 이러한 투명성은 리뷰어가 맥락을 이해하고 적절한 수준의 검토를 수행하는 데 도움이 됩니다.

인간의 책임감

AI 도구가 도움을 줄 수는 있지만, 모든 변경 사항에 대한 최종 책임은 여전히 인간 기여자에게 있습니다. 정책은 다음 사항을 명시적으로 금지합니다:

  • AI를 커밋의 공동 저자(co-author)로 기재하는 것
  • 커밋에 AI 공동 서명(co-signing)을 사용하는 것
  • "assisted-by" 또는 "co-developed"와 같은 트레일러(trailer)를 추가하여 AI에 공로를 돌리는 것

이는 도구로서의 AI 역할을 폄하하려는 것이 아니라, 책임 소재를 명확히 하기 위함입니다. 만약 무언가 잘못된다면, 왜 그런지 이해하고 수정할 수 있는 '사람'이 있어야 합니다.

공동 저자에 대한 CLA 집행

CNCF는 각 PR의 기여자 라이선스 계약(CLA)을 확인하기 위한 도구를 제공합니다. AI 에이전트는 이러한 라이선스 계약을 체결할 수 없으므로, 프로젝트 측은 공동 저자에 대해서도 CLA 확인 절차를 활성화했습니다. 이는 리뷰어에게 해당 PR이 병합(merge)될 준비가 되지 않았음을 알려주는 신호가 됩니다.

인간 간의 소통 필수

아마도 정책에서 가장 중요한 부분은 리뷰어가 AI가 아닌 '사람'과 소통하기를 기대한다는 점일 것입니다. 기여자는 리뷰 의견에 답변할 때 AI에 의존해서는 안 됩니다. AI가 생성한 변경 사항을 직접 설명할 수 없다면 해당 PR은 닫힐 것입니다. 이 요건은 지식 전달(knowledge transfer)이 확실히 이루어지고, 기여자가 자신이 제출한 코드를 진정으로 이해하고 있는지 확인하기 위한 것입니다.

검증 의무

기여자는 코드 리뷰, 테스트 및 개인적인 이해를 통해 AI가 생성한 변경 사항을 검증해야 합니다. 코드가 단순히 작동하는 것만으로는 부족하며, 왜 작동하는지 알고 있어야 하고 이를 유지 관리할 수 있어야 합니다.

이러한 정책들은 AI에 대한 성숙한 접근 방식을 반영합니다. 즉, AI를 도구로서 수용하되 인간의 판단, 이해, 또는 책임을 결코 대신하게 하지 않는 것입니다.

자동화된 AI 리뷰

코드 리뷰를 돕는 많은 도구가 존재합니다. AI PR 도구는 거버넌스 측면의 과제를 던져주기 때문에, 커뮤니티가 가장 먼저 수행한 작업 중 하나는 새로운 AI 도구를 도입하는 데 필요한 프로세스를 문서화하는 것이었습니다. 이러한 도구의 주요 평가 기준 중 하나는 kubernetes-sigs 저장소에서 기꺼이 도구를 시범 운영할 메인테이너를 찾는 것입니다. 현재 Kueue, JobSet, Agent-Sandbox 프로젝트에서 메인테이너를 지원하기 위해 이러한 도구들을 실험하고 있습니다.

Copilot

많은 메인테이너가 사용하기 시작한 도구 중 하나는 GitHub Copilot입니다. CNCF는 메인테이너들에게 접근 권한을 제공하고 있으며, 덕분에 많은 이들이 이 도구를 가장 먼저 사용하게 되었습니다. 리뷰 최적화에 대한 좋은 경험을 제공했지만, 몇 가지 성장통도 있었습니다. 커뮤니티 도입의 가장 큰 장애물은 기여자가 직접 Copilot 라이선스를 보유해야 한다는 점이었습니다. 메인테이너만이 Copilot 리뷰를 요청할 수 있었고, 커뮤니티 차원의 자동화된 PR 리뷰는 쉽지 않았습니다. 이는 개별 기여자의 라이선스 접근 권한에 의존하기보다 조직 차원의 제어가 필요함을 시사했습니다.

CodeRabbit

2026년 중반, 쿠버네티스 커뮤니티는 몇몇 프로젝트에 CodeRabbit을 도입했습니다. Copilot과 마찬가지로 더 나은 리뷰를 위해 튜닝이 필요했지만, 전반적인 피드백은 긍정적이었습니다. 이 도구는 설정 가능한 옵션이 매우 많으며, 특히 agent-sandbox에서의 활용 사례가 흥미롭습니다.

AI PR 도구는 품질 게이트(quality gate) 역할을 할 수 있습니다. 기여자는 메인테이너를 기다리지 않고도 최소한의 빠른 점검 리뷰를 받을 수 있습니다. agent-sandbox는 AI 도구가 제기한 의견들을 해결해야 한다는 점을 나타내기 위해 PR에 라벨을 추가하는 방식을 도입했습니다.

다음 단계

오픈 소스 프로젝트에서 AI를 활용하는 것은 여전히 활발한 탐색이 이루어지는 분야입니다. 커뮤니티는 리뷰 도구 튜닝, 도구 평가, 또는 AI 분야의 신기술 평가에 여러분의 도움이 필요합니다.

우리가 더 중점적으로 탐색하고 있는 분야는 다음과 같습니다:

  • 메인테이너의 번아웃을 줄이기 위한 AI 스킬 활용
  • 실패한 테스트에 대한 AI 지원 트리야지(Triage)
  • 쿠버네티스 운영 측면을 돕기 위한 스킬 개발