paint-brush
연구 결과 GitHub Copilot 사용자가 직면한 일반적인 문제가 밝혀졌습니다~에 의해@textmodels
4,843 판독값
4,843 판독값

연구 결과 GitHub Copilot 사용자가 직면한 일반적인 문제가 밝혀졌습니다

너무 오래; 읽다

한 연구에서는 GitHub Copilot을 사용하여 사용자 문제를 조사하여 사용 장애, 호환성 문제 및 코드 제안 품질과 같은 일반적인 문제를 밝혔습니다. 원인은 내부 시스템 문제부터 네트워크 연결 문제까지 다양하며 솔루션에는 버그 수정, 구성 조정 및 버전 업데이트가 포함됩니다. 전반적으로 이번 연구 결과는 GitHub Copilot의 사용자 경험을 개선하는 데 도움이 되었습니다.
featured image - 연구 결과 GitHub Copilot 사용자가 직면한 일반적인 문제가 밝혀졌습니다
Writings, Papers and Blogs on Text Models HackerNoon profile picture

이 문서는 CC 4.0 라이선스에 따라 arxiv에서 볼 수 있습니다.

저자:

(1) 중국 우한 소재 우한 대학교 컴퓨터 과학부 Xiyu Zhou;

(2) Peng Liang, 중국 우한 소재 우한 대학교 컴퓨터 과학부;

(3) Zengyang Li, 중국 우한 소재 중국 중부 사범 대학교 컴퓨터 과학부;

(4) Aakash Ahmad, 독일 라이프치히 소재 Lancaster University Leipzig 컴퓨팅 및 커뮤니케이션 학교;

(4) Mojtaba Shahin, 호주 멜버른 RMIT 대학교 컴퓨팅 기술 학교;

(4) Muhammad Waseem, 핀란드 Jyväskylä에 있는 Jyväskylä 대학교 정보 기술 학부.


III. 결과 및 분석

이 섹션에서는 세 가지 RQ의 연구 결과를 보고하고 주요 결과에 대한 분석을 제공합니다. III-A장에서는 이슈 유형을 제시하였고, III-B장에서는 해당 이슈에 대한 원인 유형과 해결방안을 각각 제시하였다. 문제 유형의 결과는 범주(예: 제안 콘텐츠 문제)와 유형(예: 덜 효과적인 제안)의 두 가지 수준으로 분류됩니다. 한편, 원인 및 해결 방법에 대한 결과는 유형(예: 적합한 버전 사용)으로만 구성됩니다. 문제가 발생한 것으로 입증된 원인과 문제를 해결할 수 있는 솔루션만 추출하여 결과에 제공한다는 점에 유의하세요. 따라서 모든 문제에 해당하는 원인과 해결 방법이 있는 것은 아닙니다. 제공된 데이터 세트에서 "GitHub Issue ID", "GitHub Discussion ID" 또는 "SO Post ID"를 나타내는 "#" 기호를 사용하여 예제를 제공합니다[13].


A. 이슈 유형(RQ1)


그림 2는 데이터에서 추출된 문제의 분류를 나타냅니다. 사용 문제(56.9%)가 Copilot 사용자가 직면한 문제의 대부분을 차지하는 것으로 관찰할 수 있습니다. 게다가 상당수의 사용자가 사용자 경험과 요구 사항을 기반으로 기능 요청(15.3%)을 제기했습니다. 또한 다양한 환경에서 Copilot을 사용할 때 호환성 문제(15.3%)를 경험한 사용자가 일부 있었으며, 그보다 적은 비율이 제안 콘텐츠 문제(4.9%), 사용자 경험 문제(4.2%), 저작권 및 정책 문제로 확인되었습니다. (3.4%).


  1. 사용 문제(56.9%): 사용 문제는 사용자가 Copilot의 일부 기본 기능(예: 설치 실패)을 활용하려고 할 때 직면하게 되는 장애물 범주를 나타냅니다. 이 문제 범주는 6가지 유형으로 더 분류되며, 이에 대한 자세한 내용은 아래에 설명되어 있습니다.


• 기능 사용 문제는 Copilot에서 제공하는 다양한 코드 생성 관련 기능의 비정상을 의미합니다. Copilot은 코드 제안을 제공하는 것 외에도 "이전/다음 제안", "모든 제안 보기", 제안을 수락하기 위한 바로 가기 키 구성 등 사용자와 더욱 효과적으로 소통할 수 있는 다양한 대화형 기능을 제공합니다. 사용자가 이러한 기능을 사용할 때 예외가 발생할 수 있습니다. 예를 들어, 사용자가 "Copilot이 더 이상 PyCharm을 제안하지 않습니다"라고 보고했습니다(토론 #11199).


• 설정/작동 문제는 Copilot의 초기화 또는 작동 중에 발생하는 오류 또는 오작동을 의미하며 종종 런타임 예외가 포함됩니다. 이러한 문제로 인해 Copilot이 올바르게 실행되지 않거나 사용자에게 "VSCode에서 Copilot 시작 오류"가 발생하는 경우와 같이 예기치 않게 충돌이 발생할 수 있습니다(토론 #30996).


• 인증 실패는 Copilot 사용 시 사용자 로그인 및 인증 문제와 관련된 문제를 나타냅니다. Copilot에서는 사용자가 서비스를 사용하기 전에 GitHub 계정에 로그인해야 합니다. 접근 권한(유료 구독, 학생 신원 확인 등 포함)이 있는 사용자만 Copilot의 코드 생성 서비스를 사용할 수 있습니다. 인증 과정에서 사용자는 이와 관련된 다양한 문제에 직면하여 Copilot을 사용하지 못할 수 있습니다. 예를 들어, 한 사용자가 토론 포럼에서 "업그레이드 후 로그인할 수 없습니다"라고 언급했습니다(토론 #18132).


• ACCESSING FAILURE는 사용자가 Copilot 서버에 액세스하지 못하는 상황을 의미하며, 서버 연결과 관련된 오류가 자주 발생합니다. 사용자에게 "GitHub Copilot이 서버에 연결할 수 없습니다"와 같은 오류 메시지가 나타날 수 있습니다(토론 #11801).


• 설치 문제는 설치 오류, 설치 방법을 찾을 수 없는 문제, 기타 관련 문제 등 Copilot 설치 과정에서 발생하는 문제를 의미합니다. 예를 들어 일부 사용자에게는 "Copilot 설치 시 오류"(토론 #17250)와 같은 문제가 발생할 수 있습니다.


• 버전 제어 문제는 Copilot 버전을 업그레이드할 수 없거나 업그레이드 후에도 업그레이드 메시지가 계속 표시되는 비정상적인 문제를 포함하여 Copilot 또는 해당 런타임 환경(예: IDE)의 버전을 조정할 때 사용자가 직면하는 문제를 나타냅니다. 예를 들어, 사용자가 IntelliJ IDEA에서 사용할 때 "copilot 플러그인 업데이트에 실패했습니다"라고 말했습니다(토론 #17298).


분석: 비교적 새로운 AI 코드 제품으로서 Copilot과의 사용자 상호 작용의 다양한 단계에서 사용 문제를 식별했습니다. 또한 사용자는 이러한 문제를 보고하고 도움을 구하는 경향이 있어 사용 문제가 가장 널리 퍼진 문제 범주가 되었습니다. 기능 사용 문제(233), 설정/작동 문제(201), 인증 실패(199)가 상위 3가지 유형입니다. 처음 두 가지 유형의 문제의 빈도가 더 높은 이유는 Copilot의 기능 설계 및 안정성이 부족하기 때문이며, 이는 사용자 환경 및 작업의 영향도 받습니다. 세 번째 유형은 Copilot에서 사용자가 GitHub 계정을 사용하여 로그인하도록 요구할 때 발생하는 특정 세부 정보와 주로 연관되어 있습니다.


2) 기능 요청(15.3%): 기능 요청은 사용자가 Copilot 사용 시 경험과 실제 요구 사항을 바탕으로 추가 또는 개선을 요청하는 기능을 의미합니다. 이러한 기능 요청은 Copilot의 사용자 경험을 개선하는 데 도움이 될 뿐만 아니라 AI 코드 생성 도구가 개발자와 더 효과적으로 상호 작용할 수 있는 방법을 탐색하는 데에도 기여합니다. 이 범주는 아래 그림과 같이 4가지 유형으로 더 분류됩니다.


• 기능 요청은 Copilot의 새로운 기능 개발에 대한 요청을 의미하며 일반적으로 도구를 사용하는 동안 직면하는 사용자의 실제 요구와 어려움으로 인해 발생합니다. 예를 들어, 한 사용자는 "코드 설명 기능"을 추가하면 Copilot의 유용성을 높일 수 있다고 제안했습니다(토론 #7509).


• 통합 요청은 Copilot이 특정 플랫폼에서 사용 가능하거나 다른 플러그인과 통합되도록 요청하는 유형을 나타냅니다. 이는 주로 특정 환경에서 Copilot을 사용하려는 일부 사용자의 바람 때문입니다. 예를 들어, 사용자가 "Intellij 2022.2 EAP 제품군 지원"을 요청했습니다(토론 #17045). 통합 요청에는 개발자들 사이에서 Copilot의 인기가 어느 정도 반영되었습니다.


• UI 요청은 사용자가 Copilot 아이콘의 모양 수정, 사용 프롬프트 조정 및 기타 관련 측면을 포함할 수 있는 Copilot의 사용자 인터페이스(UI) 변경 요청을 의미합니다. 이러한 요청은 일반적으로 Copilot의 시각 효과와 사용자 경험을 개선하는 것을 목표로 합니다. 예를 들어, 사용자는 Copilot의 현재 작동 상태에 대한 정보를 제공하기 위해 "상태 표시기"(문제 #163) 추가를 요청할 수 있습니다.


• 전문 COPILOT 버전은 Copilot 전문가 버전에 대한 일부 사용자의 요청을 나타냅니다.


그림 2. GitHub Copilot 사용 시 문제 분류


이러한 사용자는 일반적으로 실제 작업에서 보다 전문적이고 안정적인 코드 생성 서비스를 받기를 원하는 특정 회사 내부 팀의 개발자입니다. 특히 Copilot 코드의 신뢰성과 보안은 물론 팀 인증 및 기타 측면에 대한 요구 사항이 더 높습니다.


분석: FUNCTION REQUEST(123)의 경우 사용자는 일반적으로 자신의 개발 습관에 더 밀접하게 부합하도록 Copilot을 구성할 때 더 큰 유연성을 원한다는 사실을 확인했습니다. 예를 들어, 일반적인 요청에는 Copilot의 제안을 단어별로 수락하고 파일 형식이나 코드 개발 범위 측면에서 Copilot이 자동으로 작동해야 하는 위치를 지정하는 기능이 포함됩니다. 보다 혁신적인 요구 사항에는 Copilot이 전체 프로젝트에 따른 제안을 제공할 필요성과 Copilot X에서 이미 기술 미리 보기로 출시된 코드 설명 및 채팅 기능[15]과 같은 기능이 포함됩니다. 통합 요청(75)은 다음을 반영합니다. 개발자는 익숙한 환경에서 Copilot을 사용하고 싶습니다. 상당한 수의 호환성 문제가 확인되었으므로 이로 인해 Copilot 팀에 대한 요구가 높아졌습니다.


3) 호환성 문제(15.3%): 이 범주는 Copilot과 런타임 환경 간의 불일치로 인해 발생하는 문제를 다룹니다. Copilot은 다양한 IDE 및 텍스트 편집기(예: VSCode 및 IntelliJ IDEA)에서 플러그인으로 작동하며 환경의 복잡성과 다른 플러그인의 간섭으로 인해 호환성 문제가 증가할 수 있습니다. 이러한 문제는 아래에서 자세히 설명하는 네 가지 유형으로 분류됩니다.


• 편집기/IDE 호환성 문제는 Copilot과 해당 IDE 또는 편집기 간의 불일치로 인해 발생하는 문제를 나타냅니다. 이러한 문제는 일반적으로 Copilot이 특정 IDE 또는 편집기에서 제대로 작동할 수 없을 때 나타납니다.


• PLUG-IN COMPATIBILITY ISSUE는 Copilot과 다른 플러그인이 동일한 환경에서 활성화되어 함께 작동할 때 발생하는 일종의 매칭 문제를 의미합니다. 이러한 문제는 Copilot 및 기타 플러그인의 부분적 또는 전체 오작동을 일으킬 수 있으며 일반적으로 Copilot 또는 기타 플러그인 비활성화와 같은 문제 해결 방법을 통해 식별됩니다. 예를 들어, 한 사용자는 Copilot에서 생성된 코드 제안을 받지 못하는 "Emmet과의 키보드 단축키 충돌"(문제 #47)을 보고했습니다.


• 프레임워크 호환성 문제는 Copilot과 Copilot이 작동하는 프레임워크 간의 호환성 문제 유형을 나타냅니다. 일반적인 예 중 하나는 Vim용으로 특별히 설계된 Copilot의 공식 버전인 Copilot.vim[16]과 Node.js 간의 호환성 문제입니다.


• 키보드 호환성 문제는 일부 일반적이지 않은 키보드 레이아웃에서 Copilot의 기능을 사용할 수 없는 상황을 나타냅니다. 예를 들어 독일어 키보드 레이아웃을 사용하는 사용자는 대부분의 Copilot 코드 생성 관련 기능을 사용할 수 없습니다. (토론 #7094).


분석: 호환성 문제는 사용자가 Copilot을 활용하는 복잡한 운영 환경과 Copilot 자체의 호환성 견고성에서 발생합니다. EDITOR/IDE 호환성 문제(132)의 경우, Copilot 사용을 위해 공식적으로 권장되는 플랫폼인 VSCode에서 더 많은 호환성 문제가 보고되었습니다. 또한 Visual Studio, IDEA 및 PyCharm과 같이 널리 사용되는 다른 IDE에서도 유사한 문제를 발견했습니다. PLUG-IN COMPATIBILITY ISSUE(72)의 출현은 예측하기 어렵습니다. 다른 코드 완성 도구와의 충돌과 관련된 일반적인 문제가 있습니다.


4) 제안 내용 문제(4.9%): Copilot에서 생성된 코드 내용과 관련된 문제를 의미하는 문제 카테고리입니다. 코드 제안 생성은 Copilot과 같은 AI 코드 생성 도구의 핵심 기능이며, 제안 품질에 따라 사용자의 채택 여부가 직접 결정됩니다. 따라서 생성된 코드의 내용은 당연히 사용자, 연구원 및 Copilot 팀의 관심 영역입니다. 이러한 문제는 아래에 자세히 설명된 7가지 특정 상황으로 더 분류됩니다.


• 낮은 품질 제안은 Copilot이 유용한 코드를 생성할 만큼 컨텍스트를 충분히 이해할 수 없는 상황을 나타냅니다. 이러한 코드 제안에는 구문 오류가 없을 수 있지만 품질이 좋지 않아 사용자가 채택할 가능성이 없습니다. 예를 들어, Copilot은 사용자 코드에 지정된 요구 사항을 충족하지 않고 return 문만 포함하는 빈 메서드를 생성한 적이 있습니다(토론 #6631).


• 무의미한 제안은 사용자의 요구와 전혀 관련이 없거나 이상한 출력을 생성하는 Copilot에서 제공하는 코드 제안을 나타냅니다. 이러한 제안은 거의 사용할 수 없는 것으로 간주되며 사용자에게 경험적 도움을 거의 제공하지 않습니다. 예를 들어, 사용자는 Copilot에서 생성된 액세스할 수 없는 가짜 URL을 받았습니다(토론 #14212).


• 버그 포함 제안은 Copilot이 상황에 따라 관련 코드를 생성할 수 있지만 제안된 코드에 일부 버그가 포함되어 있는 상황을 나타냅니다. 이로 인해 프로그램이 실행될 수 있지만 개발자가 의도한 방식으로 실행되지 않거나 경우에 따라 오류나 충돌이 발생할 수 있습니다. 예를 들어 Copilot이 "setState(true)"(문제 #43) 대신 "setState(!state)" 사용을 제안하여 코드에 논리적 버그가 발생했다고 사용자가 보고했습니다.


• 이해할 수 없는 제안은 Copilot에서 코드 제안을 제공하지만 코드 로직의 복잡성이나 경험 부족으로 인해 사용자가 제안된 코드를 이해하기 어렵고 정확성을 확인하기 위해 추가 소스가 필요한 상황을 의미합니다. 예를 들어, 한 사용자가 "내 Github Copilot이 나를 위해 자동 완성을 했고, 그와 관련된 정보를 찾으려고 인터넷을 샅샅이 뒤졌지만 찾을 수 없었습니다"라고 말했습니다. (SO #73075410)


• 잘못된 구문이 포함된 제안은 Copilot에서 생성된 제안에 프로그램이 제대로 실행되지 못하게 하는 구문 오류가 포함될 수 있는 상황을 나타냅니다. 한 가지 예는 제안된 코드에 닫는 괄호가 없어서 편집기에 구문 오류가 표시되는 경우입니다(토론 #38941).


• 덜 효과적인 제안은 기능적으로 정확하고 사용자 요구 사항을 충족하지만 차선의 실행 효율성이나 복잡한 논리로 인해 문제가 발생할 수 있고 잠재적으로 코드의 전체 품질에 영향을 미칠 수 있는 Copilot에서 생성된 코드 제안을 의미합니다.


• 안전하지 않은 제안은 보안 취약성을 유발하는 Copilot에서 생성된 코드 제안을 나타냅니다. 예를 들어, 사용자는 자신을 위한 코드 제안에 읽고 있는 크기에 대한 책임이 부족하다고 표시했습니다(토론 #6636).


분석: 코드 제안의 품질은 실제 코드 개발을 위한 Copilot의 능력을 결정하는 중추적인 요소입니다. 우리는 상대적으로 적은 양의 제안 콘텐츠 문제를 식별했는데, 이는 사용자가 사용 관련 문제에 비해 제안 코드와 관련된 문제를 보고하려는 경향이 적음을 나타냅니다. 이러한 문제 중에서 낮은 품질 제안, 무의미한 제안 및 버그가 있는 제안은 가장 자주 보고되는 세 가지 유형인 반면, 안전하지 않은 제안 및 덜 효과적인 제안은 덜 일반적입니다. 이 결과는 생성된 코드의 품질이 사용자의 주요 관심사이지만 보안과 효율성은 높은 우선순위가 아니라는 것을 보여줍니다.


5) 사용자 경험 문제(4.2%): 이 범주는 Copilot 사용 경험에 대한 사용자 피드백을 다룹니다. 사용 문제와 비교하여 Copilot은 일반적으로 의도한 대로 실행되고 작동하지만 사용자 경험은 최적이 아닙니다. 사용자 경험 문제는 특정 사용 시나리오로 인해 나타나거나 다양한 상황에서 널리 퍼져 Copilot을 개선할 수 있는 영역에 대한 통찰력을 제공할 수 있습니다. 사용자 경험 문제는 아래에 자세히 설명된 네 가지 유형으로 분류될 수 있습니다.


• 불쌍한 기능 경험은 Copilot의 핵심 코드 생성 관련 기능의 사용이 만족스럽지 못한 사용자 경험 문제 유형을 나타냅니다. 이러한 문제는 종종 사용자와 Copilot 간의 조정을 방해하고 실제 개발 작업의 효율성을 저하시킬 수도 있습니다. 예를 들어, 사용자는 Copilot이 제공하는 자동 생성 제안이 매우 산만해 코드 생성 기능을 수동으로 실행해야 한다고 불평했습니다(토론 #13007).


• 불량한 구독 경험은 사용자가 Copilot 서비스에 구독하는 과정에서 직면하게 되는 장애물을 의미합니다. Copilot은 여러 가지 구독 방법(예: 학생 인증, 유료 구독)을 제공하므로 구독 과정에서 사용자에게 불편을 끼칠 수 있습니다. 예를 들어, 한 사용자는 청구를 설정한 후 다음에 무엇을 해야 할지 확신하지 못했습니다(토론 #19119).


• 성능 저하란 Copilot이 실행 중일 때 발생하는 성능 문제를 의미하며 일반적으로 사용자 경험에 직접적인 영향을 미칩니다. 이러한 문제에는 높은 CPU 사용량, 긴 응답 시간, 지나치게 빈번한 서버 액세스 등이 포함됩니다. • 불량한 인증 경험은 Copilot을 사용하기 전에 신원을 인증할 때 사용자가 겪게 되는 불편함을 의미합니다. 가장 일반적인 상황은 Copilot이 사용자에게 다시 로그인하라는 메시지를 자주 표시하는 것입니다. 이는 심각한 불만의 원인이 될 수 있습니다.


분석: 사용자 경험 문제는 Copilot 개선 방향에 대한 귀중한 통찰력을 제공합니다. 불쌍한 기능 경험 문제(25) 중에서 가장 일반적으로 보고되는 문제는 사용자의 코딩 프로세스를 중단시키는 Copilot의 인라인 제안(5)과 제안된 코드의 특정 부분을 수락할 수 없는 불편함(2)과 관련이 있습니다. 이러한 우려 사항은 기능 요청에서 사용자가 언급한 일부 요구 사항(예: Copilot이 코드를 생성할 수 있는 시기 및 제안된 코드 길이 설정)과 일치합니다.


6) 저작권 및 정책 문제(3.4%): Copilot은 대규모 오픈 소스 코드 모음에 대해 교육을 받고 사용자의 코드 컨텍스트를 기반으로 코드 제안을 생성합니다. Copilot의 작동 방식은 일부 사용자가 표현한 것처럼 잠재적인 저작권 및 정책 문제에 대한 우려를 불러일으킵니다. 이러한 문제는 아래와 같이 세 가지 유형으로 구분됩니다.


• 코드 저작권 문제는 Copilot이 모델 교육을 위해 오픈 소스 코드를 무단으로 사용하는 것과 관련하여 일부 코드 작성자가 제기한 우려 사항을 나타냅니다. GitHub는 현재 가장 인기 있는 웹 기반 코드 호스팅 플랫폼 중 하나이며, Copilot 출시 이후 일부 코드 작성자 사이에서는 GitHub에 호스팅된 코드가 라이선스를 적절히 고려하지 않고 교육에 사용되었다는 의심이 있었습니다.


• 코드 원격 측정 문제는 제안을 생성하기 위해 코드를 수집하는 Copilot의 접근 방식과 관련하여 사용자가 표현한 우려를 나타냅니다. 이로 인해 잠재적으로 기밀 코드가 유출될 수 있습니다. 일부 사용자는 자신의 코드는 물론 Copilot이 생성한 코드도 다른 목적으로 수집하는 것을 꺼릴 수도 있습니다.


• 마켓플레이스 정책 위반은 제안된 API를 사용했음에도 불구하고 Copilot이 VSCode 마켓플레이스에 게시될 수 있었지만 다른 플러그인은 금지되었다고 사용자가 보고한 특정 사례입니다. 사용자는 이 동작이 마켓플레이스 정책을 위반할 수 있다고 의심했습니다(문제 #3).


분석: 저작권 및 정책 문제의 출현은 Copilot 작동 방식에 대한 사용자의 우려를 드러냅니다. Copilot은 다국어 오픈 소스 코드에 대한 교육을 받았으며 작동 중에 제안을 생성하기 위해 사용자의 코드 컨텍스트를 수집해야 합니다. 이 두 가지 사실로 인해 사람들은 특히 사내 개발에서 Copilot을 사용할 때 저작권 및 지적 재산권 문제에 더 많은 관심을 기울이게 되었습니다.


B. 원인 유형(RQ2)


  1. 결과: 전체 이슈 중 24.1%에서 수집된 총 337개의 원인을 식별하였으며, Table 2와 같이 13개 유형으로 분류하였다. 그 결과, 가장 빈번하게 발생하는 문제 원인은 Copilot 내부 문제(21.4%)와 네트워크 연결 문제(15.4%)였으며, 편집기/IDE 호환성 문제(11.1%)와 지원되지 않는 플랫폼(9.2%)도 일반적으로 보고되었습니다. 구체적인 사례, 발생 횟수, 원인 유형별 비율은 표 2에 나와 있습니다. 공간의 제약으로 인해 가장 빈번하게 발생하는 상위 5개 원인을 분석합니다. 특정 유형의 문제가 잠재적으로 다른 문제의 원인이 될 수 있다는 점은 주목할 가치가 있습니다.


2) 분석: 다양한 유형의 사용 문제를 일으킬 수 있는 Copilot 내부 문제가 가장 일반적인 유형의 원인입니다. Copilot은 비공개 소스 프로젝트이므로 내부 세부 정보는 사용자에게 공개되지 않습니다. 따라서 Copilot과 관련된 업스트림 문제를 Copilot 내부 문제로 간주하며 내부 요인으로 인해 발생하는 언어 모델, 기능 설계 및 서버 측 문제를 포괄합니다. 일반적으로 Copilot 내부 문제 식별은 비정상적인 사용 경험에 대한 사용자 피드백에 따라 달라지며, Copilot 팀은 특정 근본 원인을 정확히 찾아내기 위해 추가 조사가 필요합니다. 또한 Copilot 내부 문제가 발생하면 특정 기간 내에 유사한 문제를 보고하는 사용자 클러스터가 발생하는 경우가 많습니다. 예를 들어, 서버측 잘못된 배포로 인해 사용자 그룹에 인증 실패가 발생할 수 있습니다.


네트워크 연결 문제는 인증 실패, 런타임 예외, 액세스 실패 등을 유발할 수 있는 일반적인 유형의 원인입니다. 대부분의 네트워크 관련 문제는 사용자의 네트워크 환경으로 인해 발생합니다. 일반적인 상황은 사용자가 HTTP 프록시 또는 VPN을 통해 Copilot에 액세스하는 것입니다. 이로 인해 SSL 간섭이 발생하고 서비스 사용이 차단될 수 있습니다. 그러나 좋은 소식은 Copilot이 이제 HTTP 프록시를 통한 액세스를 지원하여 이러한 문제를 해결한다는 것입니다[17].


편집기/IDE 호환성 문제는 주로 비정상적인 기능 사용 및 Copilot의 작동 문제 등을 포함하여 다양한 사용 문제를 발생시킬 수 있습니다.


지원되지 않는 플랫폼은 일부 사용자가 특정 IDE 또는 텍스트 편집기에서 Copilot을 효과적으로 사용할 수 없는 이유를 나타내며, 이는 주로 사용 및 호환성과 관련된 몇 가지 문제로 이어집니다. Copilot은 오픈 소스가 아니기 때문에 많은 플랫폼에서 출시 즉시 통합할 수 없으며 이로 인해 일부 사용자는 사용을 시도하는 동안 다양한 장애물에 직면하게 되었습니다. 따라서 사용자는 Copilot이 공식적으로 지원하는 IDE를 사용하는 것이 좋습니다. 이를 통해 보다 편리하고 안정적인 코드 생성 서비스를 제공할 뿐만 아니라 가장 일반적인 문제를 해결하는 데 도움이 될 수 있는 성숙한 토론 커뮤니티에 액세스할 수 있습니다.


부적절한 구성/설정은 기능 사용 및 호환성 문제의 주요 원인 중 하나입니다. 예를 들어 Copilot을 설치한 후 기본 구성 및 설정으로 인해 특정 IDE에서 오작동하거나 다른 플러그인과 충돌할 수 있습니다. 이러한 문제의 대부분은 구성 조정을 통해 해결할 수 있습니다.



C. 솔루션 유형(RQ3)


  1. 결과: 총 497개의 솔루션을 도출하였고, 전체 이슈의 35.5%를 해결하는데 사용되었으며, 표 3과 같이 11가지 유형으로 분류되었습니다. 그 결과, 사용 버그의 대부분은 사용자 피드백 후 공식적인 수정(Copilot에 의해 수정된 버그 27.0%)으로 해결되었으며, 사용자가 스스로 문제를 해결하려고 시도한 경우에는 구성/설정 수정(22.1%), 적합한 버전 사용(17.1%)이 나타났습니다. ), Copilot 재설치/재시작/재인증(12.3%)이 효과적인 솔루션으로 일반적으로 사용되었습니다. 구체적인 사례, 발생 횟수 및 각 솔루션 유형의 비율이 표 III에 나와 있습니다. 공간 제약으로 인해 상위 5개 솔루션의 결과를 해석하고 몇 가지 중요한 분석에 중점을 둘 것입니다. 기타(4.2%)는 일반적으로 특정 환경 및 문제에 특정한 전용 솔루션 모음이라는 점에 유의해야 합니다.


문제 유형과 솔루션 유형 간의 분포를 나타내는 매핑이 표 IV에 나와 있으며 각 솔루션 유형을 나타내는 약어를 사용합니다. 예를 들어 "BFC"는 Copilot이 수정한 버그를 나타냅니다. 매핑은 대부분의 솔루션이 사용 문제 및 호환성 문제를 대상으로 한다는 것을 보여줍니다. 기능 요청의 주요 솔루션은 주로 공식 기능 구현(FIC)을 기다리거나 구성 또는 설정 수정(MCS)을 통해 유사한 효과를 얻는 것입니다. 사용자 경험 문제는 대부분 Copilot 팀(BFC)에 의해 개선됩니다. 또한 적절한 버전의 Copilot 및 편집기/IDE(USV)를 사용하면 더 나은 경험을 얻을 수 있습니다. 제안 콘텐츠 문제를 해결하는 것은 상대적으로 어렵습니다. 입력 방식(MIW) 수정을 통해 해결할 수 있는 문제는 소수에 불과하고 대부분은 효과적인 솔루션이 부족하기 때문입니다. 저작권 및 정책 문제 역시 해결 방법이 상대적으로 제한되어 있습니다. 주요 솔루션은 Copilot의 설정을 조정하여 사용자 코드 수집을 제어하는 것입니다.


2) 분석: Copilot이 수정한 버그는 다양한 문제, 특히 특정 사용 및 호환성 문제를 해결하기 위한 기본 솔루션입니다. 이는 Copilot 내부 문제가 가장 빈번한 원인이기 때문에 합리적입니다. 이는 새로운 도구인 Copilot의 많은 문제가 사용자 자신의 노력으로 해결될 수 없음을 나타냅니다. Copilot의 비공개 소스 특성으로 인해 사용자는 피드백을 제공하고 Copilot 팀의 응답과 솔루션을 기다릴 수 있습니다.


구성/설정 수정은 부적절한 구성이나 설정과 관련된 문제를 해결하기 위한 일반적인 솔루션이며 사용자가 직접 기능 사용 문제, 플러그인 호환성 문제 및 인증 실패를 해결할 수 있습니다. 또한 일부 기능 요청의 경우 사용자는 코드 제안을 허용하도록 키보드 단축키 결합을 변경하는 등 일부 구성을 변경하기만 하면 원하는 기능을 얻을 수 있습니다. 그러나 Copilot 실행 환경의 복잡성으로 인해 모든 상황에 적합한 권장 구성을 제공하기 어렵다는 사실을 발견했습니다. 그러므로 각 사례를 개별적으로 분석해야 합니다.


적합한 버전 사용은 설정/작동 문제, 기능 사용 문제, 설치 문제 및 편집기/IDE 호환성 문제를 해결하는 효과적인 방법을 제공합니다. Copilot은 사용자 피드백 및 개발 계획을 기반으로 여러 버전에서 빠르게 반복되었습니다. 한편, 일부 IDE도 호환되는 새 버전을 출시했습니다. 그러나 일부 이전 버전은 일부 버그나 호환성 문제가 있을 수 있는 최신 버전에 비해 더 안정적일 수 있습니다. 따라서 적절한 버전을 사용하는 것은 사용자에게 매우 효과적인 솔루션입니다.


Copilot 재설치/재시작/재인증은 사용자가 인증 실패, 설정/작동 문제 및 기능 사용 문제를 스스로 해결할 수 있는 또 다른 솔루션입니다. 그 원리는 Copilot의 현재 상태를 재설정하여 존재할 수 있는 이전 오류나 설정을 초기 상태로 되돌리는 것입니다.


Copilot에서 구현한 기능은 주로 사용자 기능 요청을 처리하는 공식 작업으로 작동합니다. Copilot의 새로운 기능 개발 속도는 상대적으로 빠르며 Copilot 팀은 현재 Copilot X[18]의 일부 최신 기능을 실험하고 있습니다.