웹사이트 검색

GitHub의 Copilot AI가 개발자의 즐거움을 되찾을 수 있을까요?


GitHub 연구원들은 개발자가 Copilot의 AI 지원을 통해 코딩할 수 있는 속도와 표준 개발자 관행에 의존하는 그룹을 비교합니다.

AI 지원 개발자 생산성을 측정하기 위한 임무를 띤 깃허브(GitHub)의 연구원들은 최근 코파일럿(Copilot) 코드 완성 도구를 사용하는 그룹과 인간의 능력에만 의존하는 그룹의 코딩 속도를 비교하는 실험을 진행했습니다. 

GitHub Copilot은 올해 초 사용자당 월 10달러 또는 사용자당 연간 100달러에 공개적으로 출시된 AI 페어 프로그래밍 서비스입니다. 출시 이후 연구원들은 이러한 AI 도구가 실제로 개발자 생산성 향상으로 이어지는지 궁금해했습니다. 문제는 성능 변화를 측정하는 데 적합한 메트릭을 식별하기가 쉽지 않다는 것입니다. 

Copilot은 Microsoft의 VS Code와 같은 코드 편집기의 확장으로 사용됩니다. 사용자가 수락, 거부 또는 편집할 수 있는 여러 프로그래밍 언어로 코드 제안을 생성합니다. 제안은 자연어를 코드로 번역하고 OpenAI의 GPT-3 언어 모델을 기반으로 하는 시스템인 OpenAI의 Codex에서 제공합니다. 

참조: 코딩이란 무엇이며 어떤 용도로 사용됩니까? 초보자 가이드

구글 리서치(Google Research)와 구글 브레인 팀(Google Brain Team)은 지난 7월 AI 코드 제안이 10,000명 이상의 개발자 생산성에 미치는 영향을 연구한 후 상대적 성능 속도에 대한 논쟁이 여전히 "열린 질문"으로 남아 있다는 결론을 내렸습니다. 이는 기존의 규칙 기반 시맨틱 엔진과 Codex/Copilot과 같은 대규모 언어 모델의 조합이 "더 나은 코드 완성으로 개발자 생산성을 크게 향상시키는 데 사용될 수 있다"는 결론을 내렸음에도 불구하고 그렇습니다. 

하지만 생산성을 어떻게 측정할까요? 올해 초 다른 연구자들은 24명의 개발자로 구성된 소규모 표본을 사용하여 Copilot이 작업 완료 시간이나 성공률을 반드시 개선하지는 않는다는 것을 발견했습니다. 그러나 Copilot은 개발자가 특정 문제를 해결하기 위해 온라인에서 코드 조각을 검색하는 노력을 덜어준다는 것을 발견했습니다. 이는 개발자가 문제를 해결하기 위해 편집기 밖으로 이동할 때 Copilot과 같은 AI 도구가 컨텍스트 전환을 얼마나 줄일 수 있는지를 보여주는 중요한 지표입니다.    

GitHub는 또한 2,600명 이상의 개발자를 대상으로 설문조사를 실시하여 "사람들이 GitHub Copilot이 생산성을 높여준다고 느끼는가?"와 같은 질문을 했습니다.또한 연구원들은 대규모 원격 측정 데이터에 대한 고유한 액세스 권한을 가졌으며 6월에 연구를 발표했습니다. 무엇보다도, 연구원들은 사용자의 60%에서 75% 사이가 Copilot을 사용할 때 자신의 업무에 더 만족감을 느끼고, 코딩할 때 덜 좌절감을 느끼며, 더 만족스러운 작업에 집중할 수 있다는 것을 발견했습니다.

깃허브는 "이번 연구를 통해 깃허브 코파일럿이 더 빠른 완료 시간을 지원하고, 개발자의 정신적 에너지를 보존하며, 더 만족스러운 작업에 집중하도록 돕고, 궁극적으로 코딩에서 더 많은 재미를 찾는다는 것을 확인했다"고 말했다.

깃허브의 연구원인 에이리니 칼리암바쿠(Eirini Kalliamvakou) 박사는 이 접근법을 다음과 같이 설명했다: "우리는 전체 그림을 모으기 위해 정성적(지각적) 및 정량적(관찰된) 데이터를 포함한 여러 차례의 연구를 수행했다. (a) 사용자의 실제 경험이 원격 분석에서 추론한 내용을 확인합니까? (b) 우리의 질적 피드백이 우리의 대규모 사용자 기반에 일반화됩니까?"

원래 연구에 참여했던 Kalliamvakou는 이제 95명의 개발자가 참여한 실험을 통해 Copilot을 사용하거나 사용하지 않는 코딩 속도에 대한 질문에 초점을 맞췄습니다.

이 연구에 따르면 Copilot을 사용한 그룹(개발자 45명)은 평균 1시간 11분 이내에 작업을 완료한 것으로 나타났습니다. Copilot을 사용하지 않은 그룹(개발자 50명)은 평균 2시간 41분 만에 완료했습니다. 따라서 Copilot이 있는 그룹은 그렇지 않은 그룹보다 55% 더 빨랐습니다. 

Kalliamvakou는 또한 Copilot이 있는 그룹의 더 높은 비율(Copilot 그룹의 78%가 Copilot을 사용하지 않은 그룹의 70%)을 발견했습니다.

이 연구는 자바스크립트로 웹 서버를 코딩할 때 개발자의 속도만 비교하고 Python이나 Java와 같은 다른 언어와 관련된 다른 작업은 비교하지 않았기 때문에 본질적으로 제한적입니다. 또한 코드의 품질을 평가하지 않았습니다. 

그리고 그 실험은 컨텍스트 전환과 같은 생산성에 기여하는 요소들을 살펴보지 않았다. 그러나 GitHub의 이전 연구에 따르면 개발자의 73%가 Copilot이 흐름을 유지하는 데 도움이 되었다고 보고했습니다. 

이메일에서 Kalliamvakou는 ZDNET에 이 수치가 컨텍스트 전환 및 개발자 생산성 측면에서 무엇을 의미하는지 설명했습니다.  

"'흐름 속에 머무른다'고 보고하는 것은 확실히 컨텍스트 전환이 적다는 것을 의미하며, 우리는 추가적인 증거를 가지고 있습니다. 설문 조사에 참여한 응답자의 77%는 GitHub Copilot을 사용할 때 검색 시간이 줄었다고 보고했습니다.

"이 성명서는 문서를 찾거나 Stack Overflow와 같은 Q&A 사이트를 방문하여 답변을 찾거나 질문을 하는 것과 같이 개발자를 위한 알려진 컨텍스트 전환을 측정합니다. GitHub Copilot이 정보를 에디터로 가져오므로 개발자는 IDE에서 자주 전환할 필요가 없습니다"라고 설명했습니다. 

그러나 컨텍스트 전환만으로는 AI 코드 제안으로 인한 생산성 향상을 측정할 수 없습니다. 또한 "좋은" 컨텍스트 전환과 "나쁜" 컨텍스트 전환이 있어 컨텍스트 전환의 영향을 측정하기 어렵습니다. 

참조: 데이터 사이언티스트 대 데이터 엔지니어: 이러한 역할에 대한 수요의 변화

일반적인 작업 중에 개발자는 다양한 활동, 도구 및 정보 소스 사이를 많이 전환한다고 Kalliamvakou는 설명했습니다.  

그녀는 2014년에 발표된 연구를 언급하며 개발자들이 전환하기 전에 한 활동에 평균 1.6분을 소비하거나 시간당 평균 47번 전환한다고 밝혔습니다. 

"그것은 단지 그들의 작업 특성과 그들이 사용하는 다양한 도구 때문이며, 따라서 "좋은" 컨텍스트 전환으로 간주됩니다. 대조적으로, 지연이나 중단으로 인한 "나쁜" 컨텍스트 전환이 있습니다"라고 그녀는 말했습니다.

"우리는 이전 연구에서 이것이 생산성뿐만 아니라 개발자 자신의 발전 감각에 큰 해를 끼친다는 것을 발견했습니다. 컨텍스트 전환은 측정하기 어려운데, 그 이유는 "좋은" 인스턴스와 "나쁜" 인스턴스를 자동으로 구분할 수 있는 좋은 방법이 없기 때문이며, 전환이 작업 완료의 일부인지 아니면 개발자의 흐름과 생산성에 지장을 주는지를 구분할 수 있기 때문입니다. 그러나 자체 보고서와 관찰을 통해 맥락 전환을 측정하는 방법이 있으며, 이를 연구에 사용합니다." 

코파일럿의 다른 언어 구사 능력에 대해 칼리암바코우는 앞으로 실험을 수행하는 데 관심이 있다고 말한다.

"확실히 재미있는 실험이었습니다. 이러한 통제 실험은 더 크거나 더 포괄적으로 만들려고 하기 때문에 시간이 많이 걸리지만, 앞으로 다른 언어에 대한 테스트를 모색하고 싶습니다." 

Kalliamvakou는 GitHub의 대규모 설문 조사에서 얻은 다른 주요 결과를 블로그 게시물에 게시하여 개발자 생산성을 측정하는 데 가장 적합한 메트릭을 찾기 위한 탐구를 자세히 설명했습니다.  

관련기사