AI-Assisted Coding: Augmenting Software Development with Generative AI
40년 만의 가장 혁명적 기술: 생성형 AI가 소프트웨어 개발에 미치는 영향
생성형 AI가 다양한 분야에서 놀라움과 기대를 불러일으키고 있는 가운데, 소프트웨어 엔지니어링 분야에서도 큰 변화의 물결을 일으키고 있다. 빌 게이츠(Bill Gates)는 생성형 AI의 최근 발전을 40년 이상 만에 가장 혁명적인 기술적 성취라고 평가하며, 이 기술이 조직이 비즈니스와 IT 과제를 해결하는 방식을 획기적으로 개선할 잠재력을 가지고 있다고 언급했다.
캡제미니 리서치 연구소(Capgemini Research Institute)의 보고서에 따르면, 조직의 61%가 새로운 소프트웨어 기능과 서비스 개발과 같은 혁신적인 작업을 가능하게 하는 것을 생성형 AI의 주요 이점으로 보고 있다. 그 뒤를 이어 소프트웨어 품질 향상(49%)과 생산성 증가(40%)가 중요한 이점으로 꼽혔다. 흥미로운 점은 조직들이 이러한 생산성 향상을 인력 감축(4%)보다는 새로운 소프트웨어 기능 개발(50%)과 기술 향상(47%)에 활용하고 있다는 것이다.
포레스터 리서치(Forrester Research)에 따르면, “기성 및 맞춤형 AI 소프트웨어 지출은 2021년 330억 달러에서 2025년 640억 달러로 두 배 증가할 것이며, 연간 성장률 18%로 전체 소프트웨어 시장보다 50% 더 빠르게 성장할 것”이라고 예측했다.
“가장 인기 있는 새로운 프로그래밍 언어는 영어다”: 대화형 소프트웨어 엔지니어링의 등장
생성형 AI는 소프트웨어 개발 방식을 점진적으로 변화시킬 것으로 예상된다. 대규모 언어 모델(LLM) 등장으로 AI 지원(증강) 소프트웨어 팀으로의 패러다임 전환이 시작되었다. 소프트웨어 엔지니어링에 생성형 AI를 통합하면 생산성을 크게 향상시키고 품질을 개선할 수 있다는 장점이 있다. 이 과정에서 애자일(Agile)과 데브옵스(DevOps)의 협업, 적응성, 가치 창출 시간, 제품 중심성, 지속적인 피드백 루프와 같은 기본 원칙과 방법론은 유지된다.
캡제미니에서는 이러한 접근 방식을 ‘대화형 소프트웨어 엔지니어링’이라고 부른다. 소프트웨어 팀이 AI 어시스턴트에게 코드 스니펫 생성, 문제 해결, 소프트웨어 디자인 및 아키텍처 설계 지원을 요청하는 방식이다. 이는 소프트웨어 개발 워크플로우를 보다 역동적이고 상호작용적으로 만들어 작업을 간소화하고 문제를 효율적으로 해결하여 소프트웨어 팀이 더 복잡하고 창의적인 측면에 집중할 수 있게 한다.
OpenAI의 컴퓨터 과학자 안드레이 카르파시(Andrej Karpathy)는 “가장 인기 있는 새로운 프로그래밍 언어는 영어”라고 언급하며 생성형 AI가 기존 프로그래밍 관행을 재정의하고 있다고 강조했다. 개발자는 일반 언어로 소프트웨어 기능을 설명하고, 생성된 결과물을 검토, 업데이트 및 검증하는 방식으로 작업하게 된다. 코드 자동 완성, 단위 테스트 코드 생성, 문서화, 한 언어에서 다른 언어로의 코드 마이그레이션 등 다양한 활용 사례가 있다.
시니어부터 주니어까지: 생성형 AI로 진화하는 페어 프로그래밍과 팀 협업 구조
생성형 AI를 활용한 증강 소프트웨어 팀은 조직 개편과 새로운 작업 방식을 통해 효과적으로 운영된다. 증강 페어 프로그래밍에서는 소프트웨어 엔지니어 한 명 또는 여러 쌍이 서로 간헐적으로 작업하거나 개별적으로 AI 어시스턴트와 작업한다. AI-인간 협업에서는 팀원들이 AI 어시스턴트와 개별적으로 작업하여 반복적인 작업을 자동화하고, 문제를 이해하고 해결하며, 아이디어를 브레인스토밍한다. 이 과정에서 LLM의 속도와 지식을 활용하는 동시에 인간의 창의성을 보장한다.
인간-인간 협업에서는 AI 어시스턴트와의 대화 후 인간이 생성된 출력물을 검토하고, 그 품질을 향상시킨다. 시니어 조정에서는 선임 리더가 증강 팀을 감독하여 노력을 조정하고 갈등을 해결하며, 원활한 워크플로우와 건강한 팀 역학을 촉진하기 위한 통제와 검증을 보장한다.
캡제미니 리서치 연구소에 따르면, 필수 전제 조건 중 가장 큰 격차는 통상적으로 IDE, 자동화 및 테스트 도구, 협업 도구 등 플랫폼 및 도구에 대한 접근성이다. 조직의 27%만이 이러한 도구의 가용성이 평균 이상이라고 주장한다. 테스트 도메인 전문가의 24%가 이러한 도구에 접근할 수 있다고 말하는 반면, 프로젝트 및 프로그램 관리 전문가는 19%에 불과해 소프트웨어 엔지니어링 기능 내의 격차를 더욱 강조하고 있다.
문서 작성 35%, 코드 작성 34% 시간 단축: 측정 가능한 생성형 AI의 실질적 효과
조직이 생성형 AI를 사용하면 소프트웨어 엔지니어링 기능에서 최초 추정치 대비 7~18%의 생산성 향상을 경험할 수 있다. 특히 문서 작성과 코드 및 스크립트 작성 분야에서 가장 큰 시간 절약 효과가 나타났다. 문서 작성은 최대 35%(평균 10%), 코드 작성은 최대 34%(평균 9%)의 시간을 절약할 수 있다. 생성형 AI는 소프트웨어 전문가의 직무 만족도에도 긍정적인 영향을 미친다. 시니어 소프트웨어 전문가의 69%와 주니어 소프트웨어 전문가의 55%가 소프트웨어 개발에 생성형 AI를 사용하면서 높은 수준의 만족감을 보고했다. 또한 소프트웨어 전문가의 78%는 생성형 AI가 비즈니스와 기술 팀 간의 협업을 향상시킬 잠재력에 대해 낙관적인 견해를 보였다.
평가-실험-배포: 성공적인 생성형 AI 도입을 위한 3단계 접근법
생성형 AI 여정을 시작하기 위해서는 경험이 풍부하고 신뢰할 수 있는 조언자와 협력하는 것이 큰 도움이 된다. 각 조직은 크기, 인력 구조, 산업별 목표 등 다양한 요소에 따라 다른 속도와 모델로 발전하기 때문에 생성형 AI가 일상 운영의 일부가 되기 전에 고려해야 할 특정 요구 사항과 과제가 있다.
성공적인 도입을 위해 세 가지 핵심 영역에 집중해야 한다. 첫째, 조직의 성숙도를 철저히 평가하고 명확한 목표가 있는 로드맵을 개발해야 한다. 기업 내에는 일반적으로 소프트웨어 개발 수명 주기(SDLC)의 여러 변형이 존재하며, 이에 대한 깊은 이해를 통해 현재 소프트웨어 엔지니어링 프로세스의 성숙도와 병목 현상이 발생하는 개선 영역을 식별할 수 있다.
둘째, 실제 실험을 실행하고 생성형 AI의 영향을 측정해야 한다. 우선순위가 설정되면 이를 달성하기 위한 최상의 생성형 AI 도구를 선택하고, 법적 및 사이버 보안 위험을 관리하기 위한 가드레일을 설정해야 한다. 측정과 지속적인 개선이 핵심으로, 생성형 AI가 생산성 향상, 소프트웨어 품질, 출시 시간, 개발자 경험에 미치는 영향을 평가해야 한다.
셋째, 소프트웨어 엔지니어링을 위한 생성형 AI를 대규모로 배포해야 한다. 실험 후에는 수백 또는 수천 명의 개발자를 참여시키는 대규모 배포를 위해 조직 및 인사 관리 영향을 신중하게 고려해야 한다. 새로운 소프트웨어 엔지니어링 피라미드 형성을 돕고 필요한 기술에 맞는 새로운 작업 방식을 해결하는 생성형 AI 역량 강화 프로그램을 도입하는 것이 중요하다.
대기업 75% vs 중소기업 23%: 조직 규모별 생성형 AI 도입 격차와 실행 전략
생성형 AI를 통한 소프트웨어 엔지니어링 도입은 아직 초기 단계로, 10개 중 9개 조직이 아직 규모를 확장하지 못했다. 27%의 조직이 생성형 AI 파일럿을 실행 중이며, 11%만이 소프트웨어 기능에서 생성형 AI를 활용하기 시작했다. 주목할 만한 점은 조직 규모별 도입 격차로, 연간 매출이 200억 달러 이상인 대기업의 75%가 생성형 AI를 도입(파일럿/확장)한 반면, 연간 매출이 10억-50억 달러인 중소기업은 23%만이 도입했다.
성공적인 실험을 위해서는 팀 안정성, 적절한 기준 설정, 측정 도구 가용성 등 여러 전제 조건을 효과적으로 관리해야 한다. 팀 안정성은 비교 가능한 결과를 얻기 위해 일관된 규모, 연공서열, 흔들림 없는 프로세스를 포함해야 한다. 기준 설정에는 최소 3번의 스프린트가 필요하며, 생성형 AI 실험은 6-9개의 스프린트에서 이점을 얻을 수 있다. 다양한 사용자 스토리가 포함된 잘 정의된 백로그가 스프린트의 필수 입력이며 그에 따라 운영되어야 한다.
실험 프레임워크는 일반적으로 하나 또는 여러 팀이 참여하며, 최소 6회(가급적 9회) 스프린트 동안 진행되고, 다양한 사용자 스토리와 복잡성이 혼합된 백로그가 필요하다. 다양한 팀 구성은 귀중한 통찰력을 제공하며, 생성형 AI로 전환하는 기존 팀, 이후에 생성형 AI를 통합하는 새로운 팀, 기존 팀과 함께 일하는 그림자 팀과 같은 일반적인 구성이 있다.
FAQ
Q. 생성형 AI가 소프트웨어 개발에 어떤 구체적인 이점을 제공하나요?
A: 생성형 AI는 소프트웨어 개발에서 코드 작성 시간을 최대 34% 단축하고, 문서 작성 시간을 최대 35% 줄여주며, 전체적으로 7-18%의 생산성 향상을 가져옵니다. 또한 개발자가 반복적인 작업보다 혁신적인 기능 개발에 집중할 수 있게 해주고, 비즈니스와 기술 팀 간의 협업을 개선합니다.
Q. 소프트웨어 개발자의 역할이 생성형 AI로 인해 어떻게 변화하나요?
A: 개발자의 역할은 코딩에서 프롬프트 엔지니어링과 코드 검토로 초점이 이동합니다. 개발자는 일반 언어로 소프트웨어 기능을 설명하고, 생성된 출력물을 검토, 업데이트 및 검증하는 방식으로 작업합니다. 또한 증강 페어 프로그래밍, AI-인간 협업, 인간-인간 협업을 통해 새로운 작업 방식을 채택하게 됩니다.
Q. 기업이 소프트웨어 개발에 생성형 AI를 도입하려면 어떤 단계를 밟아야 하나요?
A: 기업은 먼저 현재 소프트웨어 엔지니어링 성숙도를 평가하고 로드맵을 개발해야 합니다. 그 다음 실제 실험을 통해 생성형 AI의 영향을 측정하고, 마지막으로 개발자 교육 프로그램을 통해 대규모 배포를 진행해야 합니다. 이 과정에서 법적, 보안 위험을 관리하고 비용을 통제하기 위한 가드레일을 설정하는 것이 중요합니다.
해당 기사에서 인용한 리포트는 링크에서 확인할 수 있다.
이미지 출처: 캡제미니
기사는 클로드와 챗GPT를 활용해 작성되었습니다.