Copilot이 GitHub 플랫폼 구축을 돕는 방법
GitHub의 엔지니어로서 ‘개밥’은 우리 문화의 핵심입니다. 우리는 개발자에게 제공하는 것과 동일한 도구를 사용하여 GitHub에 GitHub를 구축합니다. 그러나 GitHub Copilot이 자동 완성 제안에서 정교한 AI 보조자로 발전함에 따라 이를 사용하는 방법도 발전했습니다.
더 이상 편집자의 도구가 아닙니다. 우리는 개발 라이프사이클에 Copilot을 직접 통합했습니다.
github.com을 구축하는 데 사용하는 핵심 저장소 내부에는 @Copilot 단지 코드를 제안하는 것이 아닙니다. 적극적인 기여자입니다. 인간 엔지니어로부터 이슈를 할당받고, 풀 요청을 열고, 할당된 작업을 수행합니다.
Copilot은 GitHub 내의 다작 엔지니어이며 가장 시간이 많이 걸리고 지루한 작업 중 일부를 수행하고 있습니다. 이 기사에서는 Copilot이 핵심 리포지토리 내에서 생성한 한 달 간의 풀 요청을 분석했습니다. 우리가 찾은 것은 다음과 같습니다.
Copilot은 시간을 절약하는 간단한 작업을 수행합니다.
복잡한 건축 작업을 시작하기 전에 Copilot의 일상 작업 중 얼마나 많은 부분이 추가되는 작은 작업을 가속화하는 것인지 주목할 가치가 있습니다. 이는 엔지니어가 지속적인 컨텍스트 전환을 피할 수 있는 빠른 수정 사항입니다.
- UI 및 복사 변경 사항: 잘못 정렬된 아이콘을 재정렬하거나 필터 표시줄의 자리 표시자 텍스트를 더 정확하게 업데이트하는 등 사소한 UI 버그를 수정하는 작업을 담당합니다.
- 문서화 및 정리: 또한 간단한 정리도 처리합니다. 하나의 풀 리퀘스트에서는
@Copilot고치는 일을 맡았다 오타 161개 100개 파일의 주석 및 문서 문자열에 포함됩니다. 이는 간단한 작업이지만 어떤 인간 엔지니어도 오후 시간을 보내고 싶어하지 않는 작업입니다.
중요한 정리 및 유지 관리
건강한 코드베이스에는 지속적인 관리가 필요합니다. 이곳은 @Copilot 빛난다. 풀 요청의 상당 부분은 다음을 포함하여 인간 엔지니어에게 시간이 많이 걸리는 코드 유지 관리, 현대화 및 대규모 리팩터링에 중점을 두었습니다.
- 기능 플래그 제거: 이것은 엄청난 것입니다.
@Copilot더 이상 사용되지 않는 기능 플래그를 정리하고 전체 코드베이스에서 조건부 논리, 오래된 코드 및 오래된 테스트를 제거하도록 지속적으로 할당됩니다. - 대규모 리팩토링: 애플리케이션 전체에서 사용되는 클래스의 이름을 바꿔야 하는 경우,
@Copilot맡을 수 있습니다. 심지어 핵심 내부 클래스의 이름을 바꾸기 위해 저장소 전체에 걸쳐 대규모 풀 요청을 작성했는데, 이는 모든 개발자에게 지루하고 시간이 많이 걸리는 작업입니다. - 성능 최적화: 일반적인 성능 안티 패턴을 찾아서 수정하여 트래픽이 많은 영역에서 비효율적인 코드를 보다 최적화된 대안으로 대체합니다.
버그 및 불안정한 테스트 수정
@Copilot 또한 여러 가지 버그를 해결하는 데 도움이 되었습니다. 프로덕션 문제를 패치하고 CI/CD 파이프라인의 안정성을 개선했습니다.
- 생산 오류: 단순한 버그를 수정하는 것이 아닙니다. 해결이 까다로워
NoMethodError핵심 로직의 문제를 해결하고 캐싱 인프라의 복잡한 오류 마스킹 문제를 해결합니다. - 성능 병목 현상: 가장 영향력 있는 기여 중 하나는 git push가 수행하는 심각한 성능 문제를 해결하는 풀 요청이었습니다. ~15분 Codespaces의 엔지니어를 위한 것입니다.
- 불안정한 테스트 수정: 우리 모두는 빌드를 깨뜨리는 테스트의 고통을 알고 있습니다.
@Copilot정기적으로 조사하고 수정하도록 배정되었습니다.
새로운 기능 구축
이것이 정말 흥미로워지는 곳입니다. @Copilot 단순히 오래된 코드를 유지하는 것이 아닙니다. 새로운 기능을 적극적으로 구축하고 있습니다. 인간 엔지니어는 이슈의 작업을 지정하고 이를 할당합니다. @Copilot그리고 작동하게 됩니다.
다음을 추가합니다:
- 새로운 API 엔드포인트: 하나의 풀 요청은 리포지토리 보안 권고 설명을 나열하기 위해 새로운 REST API 엔드포인트를 추가했습니다.
- 새로운 내부 도구: 단순히 생산 기능을 추가하는 것이 아닙니다. Copilot은 내부 도구를 개선하는 데 광범위하게 사용되었습니다. 내부 인트라넷, 교육 사이트, 온보딩 등은 모두 Copilot에 의해 유지 관리되었습니다.
마이그레이션 및 보안
일상적인 업무 외에도 할당도 하고 있습니다. @Copilot 플랫폼의 미래에 중요한 고위험의 복잡한 프로젝트에 적용됩니다.
- 보안 게이팅:
@Copilot우리는 자체 내부 통합이 릴리스 또는 릴리스 자산 수정과 같은 민감한 작업을 수행하지 못하도록 보안 게이트를 추가하는 임무를 맡았습니다. - 데이터베이스 마이그레이션: 데이터베이스 스키마 마이그레이션도 처리합니다. 우리는 새로운 표준을 지원하기 위해 컬럼 유형을 마이그레이션하는 것과 같은 중요하고 정밀도가 높은 작업을 할당했습니다.
- 문서 작성: 빠르게 움직이는 코드와 문서의 동기화를 유지하는 데 사용됩니다. 예를 들어, 개발자가 다른 서비스와의 동기화를 유지하는 것을 쉽게 기억할 수 있도록 속도 제한 코드에 주석을 추가하는 수많은 풀 요청을 작성했습니다.
코드베이스 전반에 걸친 감사 및 분석: 문제 파악 후 해결
가장 발전된 작업 중 일부에서는 @Copilot 연구원으로 활동하고 있습니다. 모호한 작업을 할당할 수 있으며, 코드베이스를 분석하고 풀 요청을 통해 결과를 보고합니다.
하나의 풀 요청에서는 모든 Codespaces 기능 플래그를 감사하는 임무를 맡았습니다. 코드 전반에 걸쳐 모든 플래그와 해당 참조를 분류하는 포괄적인 보고서와 함께 풀 요청을 반환했습니다.
또 다른 한편으로는 성능 및 안전 개선 기회를 식별하기 위해 “인증 쿼리에 대한 종합 분석”을 수행했습니다. 이를 통해 Copilot의 역할은 코드 생성에서 시스템 수준 아키텍처 분석으로 이동하여 개발자가 복잡한 문제를 식별하는 데 며칠을 소비하지 않고 곧바로 문제를 해결할 수 있도록 도와줍니다.
새로운 협업 방식
저장소에서 Copilot의 병합된 끌어오기 요청 비율을 확인하면 인간 기여자보다 낮은 것을 알 수 있습니다. 그것은 예상된 일이며 유용합니다.
우리가 발견한 패턴은 다음과 같습니다.
- 당신이 할당
@Copilot문제 - 첫 번째 패스 솔루션으로 끌어오기 요청을 엽니다.
- 다른 풀 요청과 마찬가지로 검토합니다.
- 그럼 당신이 선택 병합하려면 분기를 반복하거나 분기를 닫고 다른 접근 방식을 취하세요.
가치는 맹목적으로 병합하는 것이 아닙니다. 0부터 시작하지 않는 상태입니다. 즉시 비평을 위한 구체적인 구현을 얻을 수 있습니다. 모든 상용구와 기본 비계는 이미 처리되었습니다.
이것은 우리의 초점을 글쓰기에서 멀어지게 만듭니다. 모두 코드. 대신 핵심 문제 해결, Copilot의 제안 개선, AI에 적합하지 않은 코드베이스 영역 작업, 아키텍처, 보안 및 사용자 경험 소유 등 엔지니어링의 가장 중요한 부분으로 바로 이동할 수 있습니다. 업무를 자동화하는 것이 아닙니다. Copilot이 지루한 작업의 80%를 처리하도록 하는 것입니다. 이를 통해 우리는 진정으로 중요한 20%에 전문 지식을 집중할 수 있습니다.
GitHub Copilot 사용 시작 >
작성자:



Post Comment