[논문 리뷰] Reading Between the Lines: Modeling User Behavior and Costs in AI-Assisted Programming
이 논문은 CodeRec User Programming States (CUPS)을 도입하고 Copilot과 함께 프로그래머 활동의 분류체계를 제시하며 상호작용 비용 및 인터페이스 설계 시사점을 분석하기 위한 라벨링 데이터 연구와 지표를 제공합니다.
Code-recommendation systems, such as Copilot and CodeWhisperer, have the potential to improve programmer productivity by suggesting and auto-completing code. However, to fully realize their potential, we must understand how programmers interact with these systems and identify ways to improve that interaction. To seek insights about human-AI collaboration with code recommendations systems, we studied GitHub Copilot, a code-recommendation system used by millions of programmers daily. We developed CUPS, a taxonomy of common programmer activities when interacting with Copilot. Our study of 21 programmers, who completed coding tasks and retrospectively labeled their sessions with CUPS, showed that CUPS can help us understand how programmers interact with code-recommendation systems, revealing inefficiencies and time costs. Our insights reveal how programmers interact with Copilot and motivate new interface designs and metrics.
연구 동기 및 목표
- 대상 시스템이 Copilot처럼 코드 권고를 제공할 때 프로그래머 활동의 분류체계(CUPS)를 개발한다.
- CUPS 및 비디오 데이터로 주석이 달린 코딩 세션의 라벨링된 데이터 세트를 수집하고 공개한다.
- AI 지원 프로그래밍 중 사용자 행동 패턴과 시간 비용을 측정하고 분석하기 위한 도구를 제안한다.
제안 방법
- 파일럿 상호작용 및 세그먼트 유형(User Typing or Paused, User Before Action)을 기반으로 12개 상태의 CUPS 분류체계를 개발했다.
- 21명의 개발자 세션에서 Copilot으로부터 기계적 수집된 원시 데이터(3137 개의 라벨링된 세그먼트, 1024 개의 제안) 수집하고, 참가자들이 전용 도구를 통해 세그먼트를 후향적으로 라벨링하도록 했다.
- CUPS 상태로 원시 데이터의 세그먼트를 주석하기 위한 라벨링 도구를 설계·사용하고, 상호작용 비용을 정량화하기 위해 상태 체류 시간과 전이들을 분석했다.
- 작업 다양성 분석을 통해 수용률, 상태-시간 분포, 작업 및 코더 경험에 따른 차이를 검토했다.
- 라벨링과 분석 재현을 위한 공개 코드와 데이터 저장소를 제공했다.
실험 결과
연구 질문
- RQ1AI 기반 코드 권고(Copilot)와 상호작용할 때 프로그래머가 수행하는 활동은 무엇인가?
- RQ2Copilot 관련 상태에서 프로그래머가 보내는 시간은 얼마이며, 어느 상태가 상호작용 비용을 주도하는가?
- RQ3프로그래밍 작업과 프로그래머 전문성에 따라 수용률과 CUPS 상태 분포는 어떻게 달라지는가?
- RQ4CodeRec의 인터페이스 인사이트나 설계 변경으로 상호작용 비용을 줄이고 AI 보조 프로그래밍의 생산성을 향상시킬 수 있는 방법은 무엇인가?
주요 결과
| 작업 이름 | # Suggestions | Acceptance Rate % | Top 3 States (time %) |
|---|---|---|---|
| 알고리즘 문제 | 124 | 30.6 ± 4.1 | 제안 확인 (25.58) 새 기능 작성 (22.31), 새 코드를 작성하기 위한 생각 (19.23) |
| 데이터 조작 | 238 | 24.8 ± 2.8 | 새 코드를 작성하기 위한 생각 (20.63) 문서 검색 (16.48), 프롬프트 작성 (16.38) |
| 데이터 분석 | 114 | 29.8 ± 4.3 | 코드 디버깅/테스트 (21.23) 마지막 제안 편집 (16.62) 프롬프트 작성 (16.00) |
| 머신러닝 | 162 | 33.9 ± 3.7 | 문서 검색 (19.98) 제안 확인 (19.01) 코드 디버깅/테스트 (12.52) |
| 클래스 및 보일러플레이트 코드 | 112 | 41.9 ± 4.7 | 제안 확인 (30.34) 프롬프트 작성 (26.02) 새 기능 작성 (13.56) |
| 테스트 작성 | 83 | 55.4 ± 5.5 | 제안 확인 (20.79) 코드 디버깅/테스트 (19.68) 새 기능 작성 (16.91) |
| 코드 편집 | 117 | 23.9 ± 3.9 | 제안 확인 (30.18) 마지막 제안 편집 (14.65) 새 기능 작성 (14.24) |
| 로지스틱 회귀 | 74 | 55.4 ± 5.8 | 제안 확인 (30.28) 마지막 제안 편집 (25.60) 새 기능 작성 (15.69) |
- 제안 확인이 가장 시간이 많이 드는 활동으로, 세션 시간의 평균 22.4%를 차지한다.
- 새 기능 작성이 두 번째로 시간이 많이 드는 Copilot 관련 상태로, 세션 시간의 평균 14.05%를 차지한다.
- Copilot 관련 상태(제안 확인, 사고 연기, 대기, 프롬프트 작성, 제안 편집)가 평균 세션 시간의 51.4%를 차지한다.
- 작업에 따라 수용률이 다르며, 데이터 조작은 수용이 낮고(24.8%), 보일러플레이트/코드 작성 작업은 수용이 높다(41.9%).
- 프로그래밍 경험과 사전 Copilot 사용 이력이 더 높은 수용률과 연관된다(경험이 많을수록 약 30% 대, 더 경험이 적은 경우 약 38% 대; 사전 Copilot 사용자는 약 38% 대, 미사용자는 약 29% 대).
- 사람들은 제안 확인보다 제안을 나중에 확인하거나 하이라이트를 통해 살펴보는 것을 선호하는 경향이 있어 사고 연기가 더 일반적이다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.