AI의 코딩 향상
인공 지능
디지털
2023년 7월 21일소프트웨어 개발과 관련하여 생성 AI는 획기적인 시간 절약을 가져올 수 있습니다. 파트너인 Martin Harrysson , Shivam Srivastava 및 동료들은 AI가 코드 기능을 문서화하는 데 필요한 시간을 45~50% 단축하고 코드 작성 완료 시간을 35~45% 단축할 수 있음을 발견했습니다.
생성 AI로 개발자 생산성 극대화
McKinsey 연구에 따르면 소프트웨어 개발자는 제너레이티브 AI를 사용하여 최대 2배 빠르게 코딩 작업을 완료할 수 있습니다. 네 가지 조치로 생산성을 극대화하고 위험을 최소화할 수 있습니다.
다운로드
기사(7페이지)
소프트웨어 개발 가속화를 목표로 하는 기술 리더는 제너레이티브 AI 를 통해 획기적인 시간 절약을 기대할 수 있습니다 . 그러나 이 혁신적인 기술의 잠재력을 최대한 활용 하려면 도구 이상의 것이 필요합니다 .
사이드바
저자 소개
우리의 최신 실증 연구는 생성 AI 기반 도구를 찾습니다.1많은 일반적인 개발자 작업에서 놀라운 속도 향상을 제공합니다(사이드바, "연구 정보" 참조). 유지 관리를 위한 코드 기능 문서화(코드를 얼마나 쉽게 개선할 수 있는지 고려)는 절반의 시간 내에 완료할 수 있고, 새 코드를 작성하는 데 거의 절반의 시간이 소요되며, 기존 코드(코드 리팩토링이라고 함)를 거의 2/3의 시간 내에 최적화할 수 있습니다(그림 1). 올바른 숙련도 향상 및 엔터프라이즈 지원 도구를 통해 이러한 속도 향상은 새로운 도구와 프로세스 모두에 의해 추진되는 엔지니어링 생산성의 과거 발전을 능가하는 생산성 증가로 전환될 수 있습니다.
전시회 1
우리는 장애가 있는 개인이 우리 웹사이트에 동등하게 접근할 수 있도록 노력합니다. 이 콘텐츠에 대한 정보를 원하시면 기꺼이 도와드리겠습니다. McKinsey_Website_Accessibility@mckinsey.com 으로 이메일을 보내주십시오.
Share
Sidebar
연구에 대해
Yet, while a massive surge in productivity is possible, our research finds time savings can vary significantly based on task complexity and developer experience. Time savings shrank to less than 10 percent on tasks that developers deemed high in complexity due to, for example, their lack of familiarity with a necessary programming framework. A similar result was seen among developers with less than a year of experience; in some cases, tasks took junior developers 7 to 10 percent longer with the tools than without them.
이러한 도구를 사용하면 개발자와 도구가 협력할 때 속도를 위해 품질을 희생하지 않았습니다. 버그, 유지 관리성 및 가독성(재사용성에 중요함)과 관련된 코드 품질은 AI 지원 코드에서 약간 더 좋았습니다. 그러나 참가자 피드백에 따르면 개발자는 해당 품질을 달성하기 위해 도구를 적극적으로 반복하여 기술이 개발자를 대체하는 것보다 보강하는 데 가장 적합하다는 신호를 보냅니다. 궁극적으로 코드 품질을 유지하기 위해 개발자는 품질 코드를 구성하는 속성을 이해하고 올바른 출력을 위한 도구를 프롬프트해야 합니다.
이러한 결과는 생성적 AI 기반 도구를 배포할 때 생산성 향상을 극대화하고 위험을 최소화하려면 엔지니어링 리더가 생성적 AI 교육 및 코칭, 사용 사례 선택, 인력 숙련도 향상 및 위험 제어를 포괄하는 구조화된 접근 방식을 취해야 함을 시사합니다. 이 기사에서는 제너레이티브 AI가 우리 연구에서 빛을 발한 부분, 개발자 전문성이 필요한 작업, 이 급성장하는 기술을 가장 효과적으로 사용하기 위해 엔지니어링 리더가 할 수 있는 일을 공유합니다.
생성 AI가 빛나는 곳
우리 연구에서 우리는 개발자들에게 소프트웨어 팀이 정기적으로 수행하는 몇 가지 다양한 작업을 할당했습니다. 코드 조각을 마이크로서비스로 리팩토링하여 유지 관리 및 재사용성을 개선하고, 새로운 애플리케이션 기능을 구축하여 고객 경험을 향상하고, 코드 기능을 문서화하여 향후 변경이 더 쉬워지도록 합니다.
McKinsey Digital 에 대해 더 알고 싶으십니까 ?
QuantumBlack, AI by McKinsey 페이지를 방문하십시오.
이러한 작업 전반에 걸쳐 우리 연구는 생성 AI 기반 도구가 다음 네 가지 주요 영역에서 엄청난 생산성 향상을 가능하게 한다는 것을 발견했습니다.
- 수작업 및 반복 작업을 촉진합니다. Generative AI는 개발자의 프롬프트에 따라 코딩에 사용되는 표준 기능 자동 채우기, 개발자가 입력할 때 코딩 명령문 완성, 지정된 표준 형식으로 코드 기능 문서화와 같은 일상적인 작업을 처리할 수 있습니다. 그렇게 함으로써 이러한 도구를 통해 개발자는 더 복잡한 비즈니스 문제를 해결하고 새로운 소프트웨어 기능을 빠르게 추적할 수 있습니다.
- 새 코드의 첫 번째 초안을 빠르게 시작합니다. 빈 화면에 직면했을 때 생성적 AI 기반 도구를 사용하는 개발자는 별도의 창이나 소프트웨어 개발에 사용하는 통합 개발 환경(IDE) 내에서 프롬프트를 입력하여 제안을 요청할 수 있습니다. 그렇게 한 개발자는 생성 AI 기반 도구가 유용한 코드 제안을 제공했다고 보고했습니다. 이것은 그들이 더 빨리 시작할 수 있도록 작가의 장애물을 벗어날 수 있게 해주었다. 한 참가자가 공유했듯이 도구를 사용하면 개발자가 "흐름"에 더 빨리 들어갈 수 있습니다.
- 기존 코드 업데이트 가속화. 참가자들은 또한 효과적인 프롬프트와 함께 이러한 도구를 사용할 때 기존 코드를 더 빠르게 변경할 수 있다고 보고했습니다. 예를 들어, 온라인 코딩 라이브러리에서 코드를 수정하고 미리 작성된 코드를 개선하는 데 소요되는 시간을 줄이기 위해 개발자는 코드를 복사하여 프롬프트에 붙여넣고 도구가 제공한 기준에 따라 조정하도록 요청하는 반복 쿼리를 제출합니다.
- 새로운 도전에 대처할 수 있는 개발자의 능력을 향상시킵니다.제너레이티브 AI 기반 도구를 사용한 개발자의 시간 절약은 복잡한 작업에서 더 적었지만, 우리 연구에서는 여전히 이점을 발견했습니다. 이 기술은 개발자가 작업을 완료하는 데 필요한 익숙하지 않은 코드 기반, 언어 또는 프레임워크를 빠르게 다듬는 데 도움이 될 수 있습니다. 또한 개발자는 새로운 도전에 직면했을 때 이러한 도구를 사용하여 숙련된 동료로부터 구할 수 있는 종류의 도움을 제공할 수 있습니다. 예를 들어, 새로운 개념 설명, 정보 통합(예: 다른 리포지토리의 코드 비교 및 대조), 작업을 수행할 수 있도록 프레임워크 사용 방법에 대한 단계별 가이드 제공 등이 있습니다. 따라서 생성적 AI 기반 도구를 사용하여 복잡한 작업을 수행하는 개발자는 도구가 없는 개발자보다 주어진 시간 내에 해당 작업을 완료할 가능성이 25~30% 더 높았습니다(표 2).
전시회 2
We strive to provide individuals with disabilities equal access to our website. If you would like information about this content we will be happy to work with you. Please email us at: McKinsey_Website_Accessibility@mckinsey.com
이점은 이러한 생산성 향상 이상의 것입니다. 연구에 따르면 개발자가 생산성을 최대화할 수 있도록 하면 개발자 경험이 크게 향상되어 기업이 최고의 인재를 유지하고 격려하는 데 도움이 될 수 있습니다 . 생성적 AI 기반 도구를 사용하는 개발자는 전반적인 행복, 성취감 및 흐름 상태를 보고할 가능성이 두 배 이상 높았습니다(그림 3). 그들은 이를 다양한 온라인 플랫폼에서 솔루션을 검색하는 것보다 더 만족스러운 작업을 수행하지 못하게 하고 손끝에 정보를 더 빨리 제공하는 지루한 작업을 자동화하는 도구의 기능 때문이라고 생각했습니다.
전시 3
우리는 장애가 있는 개인이 우리 웹사이트에 동등하게 접근할 수 있도록 노력합니다. 이 콘텐츠에 대한 정보를 원하시면 기꺼이 도와드리겠습니다. McKinsey_Website_Accessibility@mckinsey.com 으로 이메일을 보내주십시오.
개발자 전문 지식이 필요한 작업
제너레이티브 AI 기술은 많은 일을 할 수 있지만 우리의 연구에 따르면 도구는 도구를 사용하는 엔지니어의 기술만큼만 우수합니다. 참가자 피드백은 사람의 감독과 참여가 중요한 세 가지 영역을 나타냅니다.
- 버그 및 오류에 대한 코드 검사. 연구 참여자들은 때때로 생성적 AI 기반 도구가 잘못된 코딩 권장 사항을 제공하고 심지어 코드에 오류가 발생했다고 보고했습니다. 한 작업 중에 개발자는 질문에 대한 답을 얻을 수 있도록 도구의 잘못된 가정을 수정하기 위해 수많은 프롬프트를 입력해야 한다고 언급했습니다. 또 다른 경우에 한 개발자는 코드를 올바르게 디버깅하기 위해 도구를 "스푼 피드(spoon-feed)"해야 한다고 말했습니다.
- 조직 컨텍스트에 기여합니다. 상용 생성 AI 기반 도구는 코딩에 대해 많은 것을 알고 있지만 주어진 프로젝트 및 조직의 특정 요구 사항은 알지 못합니다. 이러한 지식은 최종 소프트웨어 제품이 다른 응용 프로그램과 원활하게 통합되고 회사의 성능 및 보안 요구 사항을 충족하며 궁극적으로 최종 사용자의 요구 사항을 해결할 수 있도록 코딩할 때 매우 중요합니다. 연구 참여자들이 피드백에서 지적했듯이 코드를 사용하는 방법과 사용자, 소프트웨어가 상호 작용할 인터페이스 및 기타 시스템의 유형, 사용되는 데이터 등을 포함하여 프롬프트를 통해 이러한 도구에 컨텍스트를 제공하는 것은 소프트웨어 개발자에게 달려 있습니다.
- 까다로운 코딩 요구 사항을 탐색합니다. 참가자 피드백은 생성적 AI 기반 도구가 코드 스니펫 최적화와 같은 간단한 프롬프트에 응답하는 데 여러 프레임워크를 서로 다른 코드 로직과 결합하는 것과 같은 복잡한 프롬프트에 응답하는 데 더 적합하다고 제안합니다. 한 참가자는 다면적인 요구 사항을 충족하는 사용 가능한 솔루션을 얻으려면 먼저 구성 요소를 수동으로 결합하거나 코드를 더 작은 세그먼트로 분해해야 한다고 말했습니다. 다른 참가자는 "[Generative AI]는 문제가 더 복잡해지고 큰 그림을 고려해야 할 때 가장 도움이 되지 않는다"고 설명했습니다.
제너레이티브 AI의 경제적 잠재력: 차세대 생산성 프론티어
보고서 읽기
이러한 결과는 기술 리더에게 어떤 의미가 있습니까?
이러한 결과를 감안할 때 기술 리더는 소프트웨어 개발에서 생성 AI를 사용할 때 위험을 최소화하면서 이러한 시간 절약 및 품질 개선을 실제 생산성 향상으로 전환하기 위해 무엇을 할 수 있습니까? 연구 참가자의 경험에 따르면 기술 개발, 고급 사용 사례 추구, 기술 전환 계획 및 위험 관리라는 네 가지 우선 순위로 시작하는 것이 좋습니다.
개발자에게 생성 AI 교육 및 코칭 제공
개발자가 기술을 효과적으로 사용하여 일상 업무를 보강하려면 교육과 코칭이 필요할 것입니다. 초기 교육에는 종종 프롬프트 엔지니어링이라고 하는 도구에 자연어 프롬프트를 입력하기 위한 모범 사례와 실습이 포함되어야 합니다. 또한 워크샵은 개발자에게 산업별 데이터 프라이버시 또는 지적 재산권 문제를 포함한 생성 AI 위험에 대한 개요와 도구에서 좋은 권장 사항과 나쁜 권장 사항을 식별하는 방법을 포함하여 디자인, 기능, 복잡성, 코딩 표준 및 품질에 대한 AI 지원 코드를 검토하는 모범 사례를 제공해야 합니다.
경력이 1년 미만인 개발자의 경우 이 연구에서는 코딩 구문, 데이터 구조, 알고리즘, 디자인 패턴 및 디버깅 기술과 같은 기본 프로그래밍 원칙에 대한 추가 과정이 필요하다고 제안하여 더 많은 경험을 가진 개발자 사이에서 관찰되는 생산성 향상을 달성합니다.
개발자가 일상 활동에서 도구를 사용하기 시작하면 수석 팀원의 지속적인 코칭과 전용 온라인 채널 및 팀 회의와 같은 커뮤니티 구축을 통해 기술 개발을 계속하여 실용적인 예를 공유해야 합니다. 이러한 노력을 통해 지속적인 학습을 촉진하고 모범 사례를 조직 전체에 공유하며 모든 문제를 조기에 식별할 수 있습니다. 우리의 연구에서 참가자들은 더 많은 프롬프트를 생성하고 서로 학습을 공유함에 따라 프롬프트의 품질이 향상되었다고 언급했습니다.
코드 생성을 넘어선 고급 사용 사례 추구
새로운 코드를 생성하는 생성적 AI의 능력에 대해 업계에서 엄청난 소동이 벌어지고 있지만, 우리의 연구에 따르면 이 기술은 기존 코드 리팩토링을 포함하여 많은 일반적인 개발자 작업에 영향을 미칠 수 있으며, 이를 통해 리더는 시간 부족으로 인해 종종 소외되는 전통적으로 리소스 집약적인 현대화 노력에 흠집을 낼 수 있습니다. 예를 들어 생성적 AI 기반 도구가 팀이 레거시 애플리케이션을 신속하게 리팩터링하는 데 도움이 되는 경우 팀은 회사의 할 일 목록에서 정체된 개선 백로그를 마무리하거나 전체 소프트웨어 플랫폼에서 아키텍처 성능을 개선하는 데 시간을 할애할 수 있습니다.
새로운 사용 사례를 배포하려면 도구에 대한 신중한 평가가 필요합니다. 새로운 제너레이티브 AI 도구가 시장에 출시되고 다양한 도구가 다른 영역에서 탁월하기 때문입니다. 우리의 연구에 따르면 여러 도구를 사용하는 것이 하나만 사용하는 것보다 더 유리할 수 있습니다. 연구 중에 참가자들은 두 가지 도구에 액세스할 수 있었습니다. 하나는 사용자의 프롬프트에 응답하도록 훈련된 기초 모델을 사용하고 다른 하나는 미세 조정된 기초 모델을 사용하는 것입니다.코드에 대해 특별히 교육을 받았습니다. 참가자들은 대화 기능을 갖춘 전자가 코드를 리팩토링할 때 질문에 답하는 데 탁월하다고 지적했습니다. 후자의 도구는 통합 개발 환경에 연결하고 문서 내에서 언급한 설명 주석에서 코드를 제안하는 기능 덕분에 새 코드를 작성하는 데 탁월했다고 그들은 말했습니다. 그러나 개발자가 주어진 작업 내에서 하나가 아닌 두 가지 생성 AI 도구를 모두 사용하면 1.5~2.5배의 추가 시간 향상을 실현했습니다.
기술 전환 계획
개발자의 생산성이 증가함에 따라 리더는 직원을 더 높은 가치의 작업으로 전환할 준비가 되어 있어야 합니다. 생산성의 기준선을 정한 다음 지속적으로 개선을 측정하면 조직 전체에서 새로운 역량이 나타날 수 있습니다. 리더는 추가 역량을 사용하는 방법과 나타날 수 있는 기술 격차를 줄이기 위해 필요한 기술 향상을 고려해야 합니다. 예를 들어, 그들은 새로운 사업 확장을 가능하게 하거나 기존 제품을 더 자주 업데이트하기 위해 자신의 재능을 적용할 수 있습니다. 이러한 과제를 수행하려면 개발자가 소프트웨어 설계 및 아키텍처에서 새로운 기술을 구축해야 합니다.
위험 통제 제공
새로운 데이터, 지적 재산권 및 규제 위험은 생성 AI 기반 도구와 함께 등장하고 있습니다. 개발자가 이러한 도구를 사용하여 코드를 작성하거나 업데이트할 수 있는 속도를 고려할 때 코딩 오류나 데이터 문제와 같은 문제가 어떻게 눈덩이처럼 불어날 수 있는지 쉽게 상상할 수 있습니다. 리더는 거버넌스를 업데이트할 때 다음과 같은 잠재적 위험을 고려해야 합니다.
- 데이터 프라이버시 및 제3자 보안 (예: 개발자가 도구를 요청할 때 기밀 정보를 노출할 가능성)
- 유럽 연합의 일반 데이터 보호 규정(GDPR) 및 기술 사용을 제한하는 기타 규정에 대한 변경을 포함한 법적 및 규제 변경
- 악의적인 행위자가 대규모 언어 모델의 교육에 영향을 미치거나 조직에 침투하기 위해 악의적이거나 오작동하는 코드를 퍼블릭 도메인에 심는 경우의 영향을 포함한 AI 행동 취약성
- 다른 주체가 저작권을 보유한 코드 조각을 사용하거나 도구가 생성하는 코드 소유권에 대한 논쟁 중에 발생할 수 있는 윤리 및 평판 문제
- AI 생성 코드에서 발생하여 시스템(및 조직)을 위험에 빠뜨릴 수 있는 보안 취약성
제너레이티브 AI는 다른 도구나 프로세스 개선이 수행하지 못한 방식으로 소프트웨어 개발을 혁신할 준비가 되어 있습니다. 최신 수준의 제너레이티브 AI 기반 도구를 사용하여 개발자는 작업을 최대 2배 더 빠르게 완료할 수 있으며 이는 시작에 불과합니다. 기술이 발전하고 소프트웨어 개발 수명 주기 전반에 걸쳐 도구 내에서 원활하게 통합됨에 따라 개발 프로세스의 속도와 품질을 더욱 향상시킬 것으로 기대됩니다. 그러나 우리의 연구에서 알 수 있듯이 툴링만으로는 기술의 잠재력을 최대한 발휘할 수 없습니다. 제너레이티브 AI 교육 및 코칭, 사용 사례 선택, 인력 숙련도 향상 및 위험 통제를 포괄하는 구조화된 접근 방식은 조직이 탁월한 생산성과 비교할 수 없는 소프트웨어 혁신에 대한 제너레이티브 AI의 약속을 추구할 수 있는 견고한 기반을 마련할 수 있습니다.