How Generative AI Impacts the Software Delivery Life Cycle
생성형 AI 개발 도구, 실질적 효과는 10~15% 생산성 향상에 그쳐
생성형 AI(GenAI)가 개발자 경험을 향상시킬 잠재력을 가지고 있지만, 실제 효과는 마케팅에서 주장하는 것보다 제한적이다. 가트너(Gartner)의 보고서에 따르면, 대부분의 고객사들은 생성형 AI 도구 도입 후 약 10~15% 정도의 생산성 향상을 보고하고 있다. 이는 혁명적인 변화라기보다 점진적인 개선에 가깝다. 많은 기업이 생성형 AI를 통해 개발자 생산성이 획기적으로 향상될 것이라는 기대를 하지만, 실제로는 코드 생성 작업에 필요한 프롬프트 작성과 생성된 결과물 검증에 상당한 시간이 필요하다. 가트너는 “생성형 AI는 개발자 경험을 향상시키는 도구로 취급해야 하며, 올바른 작업에 적용할 경우 가치 있는 이점을 제공할 수 있다”고 조언한다.
현재 생성형 AI 도구로는 아마존 Q 개발자(Amazon Q Developer), 코디움(Codeium), 깃허브 코파일럿(GitHub Copilot), 탭나인(Tabnine) 등의 AI 코드 보조도구와 앤트로픽 클로드(Anthropic Claude), 구글 제미나이(Google Gemini), 마이크로소프트 코파일럿(Microsoft Copilot), 오픈AI 챗GPT(OpenAI ChatGPT) 등의 AI 챗봇을 꼽을 수 있다. 또한 최근에는 에이전트 기능을 갖춘 소스 코드 관리 도구도 등장하고 있다.
코드 생성부터 테스트까지, 생성형 AI의 유용한 활용 영역
개발자들이 생성형 AI를 성공적으로 활용하는 영역은 크게 일곱 가지로 나눌 수 있다. 보일러플레이트 코드 생성, 익숙하지 않은 코드 이해, 테스트 작성, 문서 생성, 코드 리팩토링 등이 대표적이다.
첫째, 코드 생성 영역에서 생성형 AI는 반복적인 보일러플레이트 코드 작성이나 API 연동 코드 작성에 유용하다. 특히 오래된 프레임워크나 언어를 사용해야 하는 경우, 해당 기술에 익숙하지 않은 개발자에게 도움이 된다. 그러나 생성형 AI는 컴파일되지 않는 코드나 존재하지 않는 메서드를 호출하는 코드를 생성하는 ‘환각’ 현상을 보이기도 하므로 주의가 필요하다.
둘째, 코드 디버깅에서 개발자들은 AI를 통해 문제가 있는 코드의 이슈를 파악하거나 해결책을 찾는데 활용한다. 특히 멀티모달 모델은 에러 스크린샷을 분석해 오류의 원인을 찾거나, 코드를 다이어그램으로 시각화하여 이해를 돕는 기능을 제공한다.
셋째, 코드 현대화 작업에서 레거시 애플리케이션의 코드를 현대적 기술로 업그레이드하는 과정에 도움을 준다. 문서화와 테스트 작성 과정을 간소화함으로써 현대화 비용을 줄여 기존에는 비용 효율적이지 않았던 애플리케이션의 현대화도 가능하게 만든다.
넷째, 아티팩트 생성 영역에서는 Dockerfile이나 Ansible, Terraform 스크립트 같은 인프라 코드를 생성하거나 빌드 스크립트를 한 도구에서 다른 도구로 마이그레이션하는 작업을 지원한다.
다섯째, 코드 설명 기능을 통해 개발자가 익숙하지 않은 코드를 이해하거나 새로운 언어와 프레임워크를 학습하는데 도움을 준다. API 명세나 코드 주석과 같은 문서화 작업도 자동화할 수 있다.
여섯째, AI 기반 테스팅에서는 테스트 코드 작성, 테스트 데이터 생성, 테스트 하네스 구축, 뮤테이션 테스팅 등을 지원한다. 특히 개인정보 보호 규정으로 인해 실제 데이터를 테스트에 사용할 수 없는 경우, 스키마 기반으로 대량의 가짜 테스트 데이터를 생성하는 기능이 유용하다.
마지막으로, 요구사항 및 업무 관리 측면에서 제품 백로그 정제, 사용자 스토리 생성, 위험 평가, 회의 진행 보조 등 다양한 기능을 제공한다. 이를 통해 제품 팀은 더 효율적으로 작업할 수 있게 된다.
생성형 AI 개발 도입 시 관리해야 할 5대 위험 요소
생성형 AI를 개발 과정에 도입할 때는 여러 위험 요소를 고려해야 한다. 가장 큰 위험 중 하나는 노력의 이동 문제다. 코드 작성에 드는 시간이 줄어들 수 있지만, 프롬프트 작성과 생성된 코드 검증에 비슷하거나 더 많은 시간이 소요될 수 있다. 특히 복잡한 비즈니스 로직이나 높은 보안성이 요구되는 코드일수록 검증에 더 많은 노력이 필요하다.
확증 편향도 중요한 위험 요소다. 페어 프로그래밍에서는 파트너가 기존 접근법에 의문을 제기하고 대안을 제시할 수 있지만, AI 모델은 대개 기존 접근법을 개선하는 방향으로만 제안한다. 이는 개발자가 적절한 라이브러리나 서비스를 활용하는 대신 모든 것을 처음부터 구현하는 비효율을 초래할 수 있다.
자동화 편향 역시 주의해야 한다. 개발자들은 AI 모델을 경험 있는 전문가처럼 인식하고 결과물을 맹신하는 경향이 있다. 그러나 AI는 환각 현상을 보이기도 하고, 개발자가 직접 요청하지 않으면 보안이나 스레드 안전성 같은 중요한 요소를 생략하기도 한다.
지적 재산권 관리도 중요한 이슈다. 개발자가 AI에 제공하는 코드나 요구사항에 회사의 지적 재산이 포함되어 있을 수 있으며, 일부 도구는 이를 모델 학습에 활용할 권리를 가진다. 또한 AI가 생성한 코드가 저작권이 있는 오픈소스 코드와 유사할 경우 법적 분쟁이 발생할 수 있다.
이러한 위험을 관리하기 위해 가트너는 다음과 같은 방안을 제시한다. 첫째, 법무 및 보안 팀과의 지속적인 협력을 통해 지적 재산권 리스크를 관리해야 한다. 둘째, 생성형 AI를 혁명적인 생산성 도구가 아닌 개발자 경험 향상 도구로 취급하고, 개발자가 자율적으로 선택할 수 있게 해야 한다. 셋째, 코드 품질 평가 프로세스와 테스트를 강화하여 생성된 코드의 안전성을 확보해야 한다.
생성형 AI 활용의 핵심은 ‘검증’… 스택 오버플로우 답변처럼 취급해야
생성형 AI를 개발 과정에 성공적으로 통합하려면 실용적인 접근이 필요하다. 개발자들은 생성된 코드를 Stack Overflow에서 얻은 답변처럼 취급하고, 반드시 검증 과정을 거쳐야 한다. 또한 AI를 활용한 개발 커뮤니티를 구축하여 모범 사례와 지식을 공유하고, 개발자들에게 AI 활용 교육을 제공하는 것이 중요하다.
주목할 점은 개발자들이 AI를 활용할 때 주요 방해 요소가 직업 안정성에 대한 우려가 아니라는 것이다. 대부분의 개발자들은 AI가 자신의 직업을 위협할 만큼 완벽하지 않다는 점을 이해하고 있다. 대신 코드 품질 저하, 비현실적인 생산성 목표, 언어 및 도구 지원 부족, 변화 피로감 등이 주요 장애물로 작용한다.
결론적으로, 생성형 AI는 소프트웨어 개발 과정에서 인상적인 기능을 제공하지만, 개발 사이클의 병목 현상을 해결하고 제약 조건을 해소해야만 큰 생산성 향상을 달성할 수 있다. 개발자 경험 개선은 그 자체로 생산성과 직무 만족도를 높일 수 있으므로, 적절한 영역에서 생성형 AI를 활용하는 것이 여전히 가치가 있다.
FAQ
Q: 생성형 AI는 실제로 개발자의 생산성을 얼마나 향상시키나요?
A: 가트너 보고서에 따르면 대부분의 기업들은 생성형 AI 도입 후 약 10~15% 정도의 생산성 향상을 경험합니다. 이는 마케팅에서 주장하는 혁명적인 변화보다는 점진적인 개선에 가깝습니다. 프롬프트 작성과 생성된 코드 검증에 추가 시간이 필요하기 때문입니다.
Q: 생성형 AI가 가장 유용하게 활용되는 개발 영역은 무엇인가요?
A: 개발자들은 주로 보일러플레이트 코드 생성, 익숙하지 않은 코드 이해, 테스트 작성, 문서 생성, 코드 리팩토링 영역에서 생성형 AI를 유용하게 활용합니다. 특히 반복적인 코드 작성이나 레거시 코드 현대화 작업에서 효과적입니다.
Q: 생성형 AI를 개발에 도입할 때 주의해야 할 가장 큰 위험은 무엇인가요?
A: 주요 위험으로는 지적 재산권 문제, 코드 품질 저하, 환각 현상(hallucination), 확증 편향, 그리고 자동화 편향이 있습니다. 이를 관리하기 위해서는 법무 및 보안 팀과의 협력, 강화된 코드 리뷰 프로세스 도입, 그리고 AI를 개발자 경험 향상 도구로 취급하는 실용적 접근이 필요합니다.
해당 기사에서 인용한 리포트 원문은 링크에서 확인할 수 있다.
이미지 출처: 이디오그램 생성
기사는 클로드와 챗GPT를 활용해 작성되었습니다.