인공지능(AI)의 보급이 증가하는 것은 부정할 수 없는 사실이지만, 개발자의 업무 프로세스에 미치는 영향과 관련성에 대한 의문이 제기되고 있습니다. 이에 대한 인사이트를 제공하기 위해 스택 오버플로에서는 9만 명 이상의 개발자가 참여한 종합적인 연구를 수행하여 AI에 대한 개발자의 관점을 수집했습니다. 이 연구를 통해 몇 가지 주목할 만한 결과가 도출되었으며, 그 내용은 다음과 같습니다.
AI에 대한 개발자의 전반적인 감정
앞서 언급했듯이 AI는 개발자들 사이에서 점점 더 인기를 얻고 있습니다. 스택 오버플로 2023 설문조사 에 따르면 70%가 이미 개발 프로세스에서 AI 도구를 사용하고 있거나 사용할 계획이며, 44%는 현재 도구를 사용하고 있고 26%는 사용할 계획이라고 답했습니다.
개발자들 사이에는 인공지능에 대한 관점의 차이가 존재하며, 이는 개발자의 직업적 배경과 전문 지식 수준에 따라 다릅니다.
직업
소프트웨어 신뢰성 엔지니어(SRE), 보안 전문가, 게임 개발자의 인공지능(AI)에 대한 인식은 인공지능 시스템에 코드나 기밀 데이터를 제공하는 것에 대한 불안감으로 인해 부정적인 것으로 보입니다.
하드웨어, 백엔드 시스템 또는 애플리케이션을 전문으로 하는 개발자에게는 이러한 전문 영역의 복잡한 특성으로 인해 AI 도구가 유용하지 않을 수 있습니다. 따라서 이러한 개발자는 AI 지원을 받지 못할 수도 있습니다.
AI 도구는 프론트엔드 개발자, 데이터 과학자, 클라우드 개발자에게 특히 유용한 것으로 나타났는데, 이들은 이러한 기술을 활용하는 경향이 더 높기 때문입니다. 이러한 도구를 프론트엔드 및 백엔드 개발자의 업무에 구현하면 특정 작업에 대해 미리 작성된 코드 스니펫이나 스크립트를 제공하여 생산성을 높일 수 있습니다.
데이터 과학자는 데이터 처리 자동화, 모델 최적화 및 기능 선택을 용이하게 하기 위해 인공 지능을 활용할 수 있습니다.
인공지능은 리소스 배포, 워크로드 밸런싱, 모니터링, 성능 조정과 같은 작업을 자동으로 관리하여 클라우드 개발의 효율성을 높일 수 있습니다.
경험
코딩 방법을 배우는 초기 경력 개발자와 개인은 이러한 기술로 인해 기술 습득 속도가 향상되어 인공 지능(AI) 도구를 활용하는 경향이 더 높습니다.
일부 경력 개발자(21년 이상)가 AI에 대해 덜 호의적인 견해를 가지고 있는 것은 사실이지만, 이 인구 통계는 42.2%로 소수에 불과합니다.이들은 특정 기술에 투자하기 전에 AI에 대한 현재의 흥분이 가라앉을지 여부를 판단하기 위해 기다리는 것일 수 있습니다.
국가
최근 설문조사에 따르면 인도(83%), 브라질(78%), 폴란드(70%)의 전문 개발자 중 압도적인 다수가 업무에 인공지능 도구를 활용하고 있거나 사용할 계획이라고 답했습니다. 이러한 추세는 해당 국가에 젊은 개발자의 수가 크게 증가했기 때문일 수 있습니다. 반대로 영국, 프랑스, 독일에 거주하는 개발자는 인공지능 기술을 업무에 통합하려는 성향이 낮은 것으로 나타났습니다.
개발자가 AI를 사용하는 작업은 무엇인가요?
개발자의 인공지능(AI) 활용은 초보 코더가 사용하는 업무부터 숙련된 전문가가 사용하는 업무에 이르기까지 다양한 업무에 걸쳐 다양합니다.
코딩에 능숙해지는 과정에 있는 사람들은 기본 코드베이스에 익숙해지고 새로운 코드를 작성하기 위한 수단으로 인공지능을 활용하는 경향이 있습니다.
최근 설문조사에 따르면 86%에 달하는 압도적인 비율의 전문 개발자가 코드 작성에 인공지능(AI) 도구를 활용하고 있는 것으로 확인되었습니다. 또한 응답자의 절반에 가까운 54%는 코드 디버깅에 이러한 AI 도구를 활용하고 있는 것으로 나타났습니다. 참가자들은 코드 테스트, 커밋 및 검토, 애플리케이션 배포 및 모니터링, 코드 문서화 등 다양한 용도로 AI 도구를 사용하는 것으로 나타났습니다.
소수의 개발자만이 인공지능을 활용하여 동료와 함께 일할 의향이 있다고 답했습니다.
개발자를 위한 인공지능의 이점
인공지능은 전문 개발자와 코딩을 배우는 개인 모두에게 유리한 것으로 밝혀졌습니다. 실제로 응답자의 33%에 해당하는 대다수가 AI 활용과 관련된 주요 이점으로 생산성 향상을 꼽았습니다. GitHub Copilot을 비롯한 여러 도구는 코드 제안, 자동 완성, 오류 감지 등의 기능을 제공하여 개발 프로세스를 크게 앞당깁니다.
전문 개발자의 대다수는 생산성 향상(37.4%)을 가장 큰 장점으로 꼽았으며, 효율성 향상(27.9%)과 학습 속도 향상(27.4%)이 그 뒤를 이었습니다.
코딩을 배우는 개발자에게 인공지능의 주요 장점으로는 빠른 습득 속도(42.4%), 생산성 향상(41.4%), 소프트웨어 작성의 효율성 향상(33.7%)이 꼽혔습니다.
비교적 적은 비율의 개발자가 정확도 향상을 AI 도구의 긍정적인 측면으로 인식하고 있습니다. 숙련된 전문 개발자들 사이에서는 이러한 인식이 훨씬 더 널리 퍼져 있으며, 14.1%만이 정확도 향상을 AI의 장점으로 꼽은 반면 코딩을 배우는 개인은 23.8%에 달했습니다.
설문조사에서는 다양한 개발자 유형에 따라 이러한 장점을 분류하기도 했습니다. 생산성 향상은 모든 유형의 개발자에게 공통적으로 나타나는 것으로 나타났습니다.
2023년 개발자가 사용하는 인기 AI 도구
스택 오버플로우에서 실시한 설문조사에 따르면 인공지능(AI) 도구에 대한 관심이 증가했으며, 인공지능 검색 도구 또는 인공지능 개발자 도구로 분류되었습니다. 조사 결과에 따르면, 개발자들은 주로 두 가지 특정 AI 도구, 즉 ChatGPT와 GitHub Copilot에 주로 의존하고 있는 것으로 나타났습니다.
오늘날 AI 검색 도구는 소프트웨어 개발의 필수적인 부분입니다. 그 중에서도 ChatGPT는 가장 널리 사용되는 도구입니다. 최근 설문조사에 따르면 이 도구를 사용해 본 개발자의 79%가 내년에도 계속 사용할 의향이 있다고 답했습니다. 다른 인기 있는 AI 검색 도구로는 Bing AI와 Google Bard AI가 있습니다.
구글이 바드의 프로그래밍 능력을 인정했음에도 불구하고 바드와 ChatGPT를 비교한 결과 바드가 여전히 열등한 것으로 나타났습니다.
AI 검색 도구를 만드는 개발자 중 여러 개발자가 선호하는 옵션으로 WolframAlpha, Phind, You.com을 활용한다고 언급했습니다.
GitHub Copilot에서 실시한 설문조사 결과에 따르면 이 도구를 사용해 본 사용자 중 70% 이상이 다시 사용할 의향이 있다고 답해 사용자들이 가장 선호하는 AI 코딩 도우미로 나타났습니다. 또한 탭나인 사용자의 약 60%와 AWS 코드 위스퍼러 사용자의 약 절반도 깃허브 코파일럿 사용에 관심을 보였습니다.
개발자의 2.85%만이 AI로 생성된 콘텐츠의 정확성에 대해 높은 신뢰도를 표명하는 등 다양한 AI 기술의 제한적인 통합은 신뢰성에 대한 광범위한 불확실성을 반영하고 있습니다. 이러한 경계심은 ChatGPT와 같은 AI 도구가 잘못된 결과를 제공하여 애플리케이션에 상당한 피해를 입힐 수 있는 사례에서 비롯된 것일 수 있습니다. 예방 조치로, 이러한 도구의 결과를 구현하기 전에 철저하게 검증하는 것이 좋습니다.
소프트웨어 개발에서 인공지능을 시작하는 방법
소프트웨어 개발 과정에서 코드 생성 및 편집 도구를 통합하는 것은 인공지능을 효과적으로 활용할 수 있는 방법이 될 수 있습니다. GitHub Copilot 및 Tabnine과 같은 도구는 입력하는 내용의 컨텍스트에 따라 코드 스니펫을 제안하여 개발 시간을 크게 단축합니다. 또한 ChatGPT는 유틸리티 함수, 사용자 인터페이스 구성 요소 및 디버깅 코드를 생성하는 데 유용한 리소스입니다. 적절한 프롬프트를 사용하여 웹 애플리케이션을 개발하는 데 ChatGPT를 활용할 수 있습니다.
인공지능 지원 소프트웨어 개발의 미래
인공지능(AI)이 소프트웨어 개발 프로세스 전반에 걸쳐 생산성과 효율성을 향상시키는 측면에서 개발자에게 많은 이점을 제공할 수 있는 잠재력이 있다는 것은 인정되지만, 개발자들이 애플리케이션을 완전히 AI 도구에 의존할 준비가 되어 있는지에 대해서는 여전히 망설이는 경우가 많습니다. 그럼에도 불구하고 AI가 개발자가 소프트웨어 프로그램을 만드는 방식에 영향을 미치고 있는 것은 분명합니다. 개발자는 AI 기술을 활용하여 소스 코드 작성, 테스트 수행, 오류 식별, 코드 리뷰 평가 등 개발의 다양한 단계를 신속하게 진행할 수 있습니다. 결과적으로 이러한 혁신을 통해 개발자는 전반적인 개발 라이프사이클을 크게 개선할 수 있습니다.