Gen AI는 소프트웨어 개발자의 생산성 향상을 제공하지만 모든 사람에게 해당되는 것은 아닙니다.
Generative AI는 생산성 이점을 제공하지만 IT 전문가는 현재 구현에서 이러한 도구를 전면적으로 채택하는 것을 조심해야 합니다.
소프트웨어를 구축하는 모든 사람에게 생성적 AI(Gen AI), 특히 GitHub Copilot과 같은 도구는 코드를 빠르게 생성, 테스트, 문서화 및 디버깅할 수 있는 수단으로, 이는 큰 생산성 이점으로 이어집니다.
이러한 향상을 통해 소프트웨어 개발자와 운영 전문가가 조직 내에서 컨설팅 및 리더십 역할을 강화하고 수행할 수 있는 시간, 리소스 및 두뇌 능력을 확보할 수 있습니다.
그러나 생산성 이점은 분명하지만 AI가 모든 사람에게 혜택을 주지는 않을 수 있으므로 업계 전문가들은 자동화에 조심스럽게 접근할 것을 권고합니다.
첫째, 몇 가지 맥락입니다. Microsoft, MIT, Princeton University 및 Pennsylvania 대학의 연구원들이 다자간 연구에 따르면 Gen AI 코드 제안 도구는 소프트웨어 개발자 생산성을 높일 수 있다고 합니다.
이 연구는 모두 Copilot에 액세스할 수 있는 3개 회사의 4,867명의 소프트웨어 개발자의 성과를 분석한 결과 주간 완료 작업 수가 26% 증가하고 코드 업데이트 수가 14% 증가했으며 38건의 생산성이 증가한 것으로 나타났습니다. 코드가 컴파일된 횟수가 % 증가합니다.
업계 전반의 다른 경영진과 전문가들은 Gen AI가 소프트웨어 개발자에게 엄청난 생산성 향상을 가져올 수 있다는 데 동의했습니다.
SAS의 저명한 소프트웨어 개발자인 Brett Smith는 ZDNET과의 인터뷰에서 "Gen AI와 부조종사 도구는 개발 속도에 큰 영향을 미칩니다."라고 말했습니다.
"AI는 상용구 코드, 단위 테스트 및 문서 작성을 도와 개발자가 실제 솔루션 해결을 가속화할 수 있도록 지원합니다. Generative AI는 의심할 여지 없이 소프트웨어 개발 게임에 혁명을 일으켜 전 세계 개발자에게 쌍 프로그래머 역할을 합니다."
생성 도구는 "기존 코드베이스에 새로운 기능을 도입하거나 코드베이스를 새로운 프로그래밍 언어로 포팅"하는 등 다양한 개발 작업에 유용할 수 있다고 LexisNexis Risk Solutions의 글로벌 최고 정보 보안 책임자인 Flavio Villanustre는 말했습니다.
"이러한 AI 도구는 제대로 문서화되지 않은 코드베이스를 이해하는 데 필요한 소프트웨어 고고학에도 도움이 됩니다. 또한 AI는 특히 테스트 기반 소프트웨어 개발 환경에서 테스트 사례를 생성해야 할 때 유용한 리소스 역할을 할 수 있습니다. 마지막으로 중요한 것은 , AI 도구는 특정 프로젝트에 유용할 수 있는 타사 라이브러리와 프레임워크를 식별하는 데 도움이 될 수 있습니다."
그러나 이것이 모두 좋은 소식은 아닙니다. Microsoft/MIT/Princeton/UPenn 연구의 연구원들은 한 가지 주요 주의 사항을 강조했습니다. 즉, 경험이 많은 개발자들 사이에서 Gen AI의 이점이 줄어든다는 것입니다.
"경험이 부족한 개발자는 더 높은 채택률과 더 큰 생산성 향상을 보여주었습니다."라고 그들은 말했습니다. "Copilot은 최근 채용된 직원과 하급 직위에 있는 사람들의 작업 완료율을 크게 높여 주지만 재직 기간이 길고 고위직에 있는 개발자에게는 그렇지 않습니다."
AI 기반 도구는 "경험이 부족한 개발자에게 매우 유용하다"고 디지털 뉴스레터 서비스인 beehiiv의 성장 책임자인 Edward White는 동의했습니다.
"리팩터링 및 최적화에 대한 실시간 제안을 제공하여 주니어 개발자에게 코딩하는 동안 모범 사례를 안내합니다. 이러한 도구는 비효율성이나 반복적인 패턴을 식별하고 개선 사항을 권장하여 코드를 더 깔끔하고 효율적으로 만들 수 있습니다. 즉각적인 피드백은 개발자가 방법을 배우는 데 도움이 됩니다. 유지 관리 가능한 코드를 작성하고, 적절한 명명 규칙을 따르고, 더 나은 구조를 사용하세요."
그러나 경험이 부족한 개발자에게 초점을 맞추고 있음에도 불구하고 Smith는 오랜 전문가도 Gen AI의 이점을 볼 수 있다고 말했습니다. 그는 “내 경험상 베테랑 개발자들은 AI 지원으로 큰 혜택을 받았다”고 말했다.
"AI는 상용구 코드 작성에 놀라울 정도로 효율적이며 개발자가 AI가 잘하지 못하는 복잡한 맞춤형 작업을 수행할 수 있도록 해줍니다. 일반적으로 경험이 부족한 개발자는 복잡한 문제를 해결하는 데 어려움을 겪으며 AI는 일반적으로 이러한 작업을 도와줄 수 없습니다. 그런 면이요."
업계 전문가의 증거에 따르면 균형이 이루어져야 합니다. 경험이 풍부한 개발자든 경험이 없는 개발자든 Gen AI를 배포하는지 여부에 관계없이 IT 전문가와 경영진은 현재 구현에서 이러한 도구를 전면적으로 채택하는 것을 조심해야 합니다.
Villanustre는 "어시스턴트는 일반적으로 특정 공통 기능을 작성하고, 기존 라이브러리와 합리적으로 인터페이스하고, 테스트 사례를 작성하고, 기존 코드를 설명할 수 있지만 숙련된 프로그래머가 피할 수 있는 특정 실수를 저지릅니다."라고 말했습니다.
"이러한 AI 기반 도구는 더 복잡한 알고리즘을 처리할 때 어려움을 겪으며 안전하지 않거나 안전하지 않은 코드를 작성할 수 있습니다. 제 생각에는 현재 AI 도구는 초보 프로그래머에게 적합하며 여전히 경험이 풍부한 소프트웨어 전문가의 모니터링이 필요합니다. "
Smith는 또한 Gen AI 도구의 속도 증가가 양날의 검이라고 말했습니다. "개발자는 나쁜 코드를 작성합니다. AI는 그들이 나쁜 코드를 더 빨리 작성하도록 도와줍니다."라고 그는 말했습니다.
"팀에서 생성하는 코드 양이 증가하면 평소보다 더 많은 버그와 취약점이 발생할 수 있습니다. 이러한 새로운 코드의 물결은 테스트 및 보안 팀을 빠르게 압도할 수 있습니다. 팀은 전투 속도를 유지하기 위해 체크포인트, 테스트 및 보안 검색을 자동화해야 합니다. 생성 AI의 사악한 측면이 앞으로 나아갈 것입니다."
생성된 코드의 품질도 문제입니다. Mendix의 전문가인 David Brault는 "AI는 훈련만큼 훌륭합니다."라고 말했습니다. 훈련 데이터에는 "잘 작성된 코드와 표준 이하의 코드의 조합"이 포함될 수 있습니다. 이러한 혼합은 다양한 품질과 일관성의 코드로 이어질 수 있으며 심지어 기술적 부채를 쌓을 수도 있습니다.
AI 생성 코드의 또 다른 과제는 기존 시스템, 특히 복잡하거나 레거시 아키텍처와 호환되지 않을 위험이 있다는 것입니다.
"AI 도구는 특정 작업을 위한 효율적인 코드를 생성할 수 있지만, 오래된 시스템의 고유한 종속성, 프레임워크 또는 구조를 항상 고려하는 것은 아닙니다."라고 White는 경고했습니다.
"이러한 불일치는 예상치 못한 동작과 같은 문제로 이어질 수 있으며, 철저한 테스트 없이 AI 생성 코드를 구현하면 중단을 초래할 수도 있습니다."
IT 전문가는 또한 그 과정에서 발생할 수 있는 법적 문제에 주의해야 합니다. 소프트웨어 리뷰 제공업체인 SoftwareHow의 최고 마케팅 책임자인 Mira Nathalea는 "AI 생성 코드를 사용하려면 복제, 지적 재산권 및 잠재적인 라이센스 문제에 대한 주의가 필요합니다."라고 말했습니다.
"개발자와 회사는 확인되지 않은 코드 제안과 관련된 위험에 유의해야 합니다. 프로젝트의 라이선스 요구 사항에 맞지 않는 코드를 무의식적으로 통합하여 지적 재산권 충돌이 발생할 수 있는 위험이 있습니다. 개발자는 AI가 생성한 제안을 주의 깊게 검토하여 유지 관리해야 합니다. 코드 품질 및 법적 준수."
소프트웨어 전문가와 경영진은 AI 기반 코드 생성으로 인해 발생할 수 있는 윤리적 문제도 신중하게 관리해야 합니다.
기술 친화적인 일상 휴대품 제조업체인 Axwell Wallet의 CEO인 Joel Popoff는 "윤리적 고려 사항을 간과하면 개인 정보 보호 위험, 데이터 오용 또는 알고리즘 내 편견과 같은 의도하지 않은 문제가 발생할 수 있습니다."라고 말했습니다.
"AI 생성 코드를 주의 깊게 평가하지 않으면 특히 사용자 개인 정보 보호 및 공평한 대우와 같은 영역에서 규정이나 윤리 표준을 완전히 준수하지 못할 수 있습니다."
Popoff는 이러한 위험을 완화하기 위해 AI 생성 코드에 맞춘 윤리적 검토 절차를 구현하는 것이 중요하다고 말했습니다. 그는 "여기에는 정기적으로 AI 결과를 감사하고, 데이터가 책임감 있게 처리되도록 보장하며, 자동화된 의사결정의 편견을 적극적으로 확인하는 것이 포함됩니다"라고 말했습니다.
"AI가 데이터를 처리하고 사용하는 방법에 대한 투명성을 확립하면 신뢰를 유지하고 개발 프로세스를 윤리 원칙에 맞게 유지하는 데 도움이 됩니다."
따라서 고려해야 할 다양한 문제와 우려 사항이 있습니다. 그러나 AI를 책임감 있게 활용하면 개발 분야에 혁명을 일으킬 수 있습니다.
"개발에 AI를 사용하는 가장 큰 장점 중 하나는 개발자가 시간을 낭비하고 솔루션에 비즈니스 가치를 거의 추가하지 않기 때문에 싫어하는 지루하고 반복적인 작업을 자동화할 수 있는 능력입니다."라고 Brault는 말했습니다.
"대신 AI로 이러한 낮은 수준의 루틴을 자동화함으로써 개발자는 회사에 영향을 미치는 복잡한 비즈니스 문제를 해결하기 위한 창의적인 방법을 찾는 데 더 많은 시간을 할애할 수 있습니다. 무엇보다도 개발자는 검증하고 검증하는 데 전문 지식이 필요하므로 개발자의 가치가 더욱 높아질 것입니다. AI 생성 코드를 보호하고 재사용 가능한 구성 요소, 템플릿 및 프레임워크를 구축하여 AI를 기존 시스템과 통합하기 위한 거버넌스 표준을 확립합니다."
