• IS-179

생성형 AI에 의한 소프트웨어 개발자 업무 영향 분석

  • 진회승SW기반정책·인재연구실 책임연구원
  • 윤보성SW기반정책·인재연구실 선임연구원
  • 신승윤SW기반정책·인재연구실 선임연구원
날짜2024.08.20
조회수4826
글자크기
    • 본고는 생성형 AI로 인한 소프트웨어 개발 프로세스별 개발 업무 변화를 살펴보고, 이것이 소프트웨어(Software, 이하 SW) 개발자 직무에 어떠한 영향을 주는지와 그 시사점에 대해 논하려고 한다. 생성형 AI란, 텍스트, 오디오, 이미지, 동영상 형태의 새로운 콘텐츠를 생성하도록 설계된 인공지능 모델이다. 생성형 AI라는 화두를 세상에 내놓은 OpenAI사의 ChatGPT는 지금까지 출시된 애플리케이션 중 가장 빠른 속도로 이용자 수가 늘어나고 있다. 이러한 경향은 생성형 AI의 활용이 업무 효율성을 향상할 것으로 기대되기 때문이며, 특히 개발환경의 변화로 인해 개발자의 역할 또한 변화할 것으로 전망된다. SW 개발은 SW 요구분석, 설계, 구현 및 시험 등의 복잡한 프로세스로 구성되어 있다. 또한 고객사의 개발 및 운영 환경, 성능 및 보안 요구 수준, 유지보수성 등 다양한 요소를 고려해야 하는 정형화하기 어려운 업무이기 때문에 생성형 AI가 개발자 업무에 주는 영향은 예상만큼 크지 않았다. SW개발 단계 중 SW 구현과 SW 시험 단계에는 생성형 AI 활용이 가능하다. 생성형 AI를 이용하면 SW 구현 단계에서는 코드 생성, 코드 자동완성, 주석 작성, 코드 번역, 리버스 엔지니어링 등이 가능하다. SW 시험은 시간이 많이 소요되고 반복적인 업무가 많아, 생성형 AI 활용에 가장 효과적인 단계이다. 반면에 고객과의 커뮤니케이션이 중요한 SW 요구분석 단계와 최신 기술을 포함한 복잡한 기술을 연계하여 수행해야 하는 SW 설계 단계는 생성형 AI의 활용이 쉽지 않다. 전반적으로 생성형 AI 개발도구의 활용은 개발자의 생산성 향상에 효과가 있으나, 개발 단계, 개발하는 제품이나 서비스의 종류, 개발자의 수준 등에 따라 생성형 AI의 활용 방법 및 효과의 차이가 큰 것으로 분석되었다. 개발도구로써 생성형 AI의 활용은 초급개발자보다 생성형 AI 환각에 의한 잘못된 정보를 빠르게 판단할 수 있는 중급개발자의 생산성을 더 높이는 것으로 확인되었다. 반면에 초급개발자는 생성형 AI를 프로그램 언어 학습에 유용하게 활용할 수 있으며, 초급개발자 수준이 빠르게 높아질 것으로 예측된다. SW개발자의 작업에서 생성형 AI의 영향을 받는 작업은 일부분이다. 개발자 직무를 수행하기 위해서는 데이터 분석, SW 및 DB 설계, 시스템 결정 및 성능 개선 등 개발 관련 기술 업무 이외에도, 동료와 업무 협의, 이슈 해결 등의 소프트스킬이 필요한 작업이 있어 개발자 업무와 개발 생산성에 대한 생성형 AI의 영향 정도를 정량적으로 파악하기는 어렵다. 생성형 AI 시대에 대비하기 위해 개발자 수준에 따른 세분화된 생성형 AI 활용 전략 마련, 직무별로 상이한 생성형 AI의 영향을 고려한 개발자 양성 규모 검토가 필요하다. 또한 생성형 AI를 활용하면서 직면할 수 있는 저작권 문제, 프라이버시 문제, 모델 오남용 문제에 대해 적절히 대응할 수 있도록 기본적인 AI 윤리 교육에 대한 강화가 시급하다.
  • Executive Summary
    • In this article, we'll take a look at how generative AI is changing the development process and discuss the implications for developer jobs. Generative AI is an AI model designed to generate new content in the form of text, audio, image and video. The use of generative AI is growing at a rapid pace. This is because it is expected to improve work efficiency, and the role of developers is also expected to change due to changes in the development environment. SW development consists of a complex process of SW requirements analysis, design, implementation, and testing. In addition, the impact of generative AI on developers' work is not as large as expected because it is a difficult task to formalize that requires consideration of various factors such as the customer's development environment, performance and security requirements, and maintainability. Generative AI can be used for SW implementation and SW testing during the SW development phase. On the other hand, the SW requirement analysis phase, which requires communication with customers, and the SW design phase, which involves complex technologies including the latest technologies, are not easy to use generative AI. Overall, the use of generative AI development tools is effective in improving developers' productivity, but there are large differences in how generative AI is used and its effectiveness depending on the development stage, the type of product or service being developed, and the level of developers. Only a small part of a SW developer's work is affected by generative AI. In addition to technical tasks related to development, such as data analysis, SW and DB design, system performance improvement, developers also need soft skills, such as collaborating with colleagues, so it is difficult to quantify the extent of the impact of generative AI on developer work and development productivity. In order to prepare for the era of generative AI, it is necessary to prepare a strategy for using generative AI that is categorized by developer level and review the scale of developer training considering the impact of generative AI by job function. It is also urgent to strengthen basic AI ethics education so that developers can respond appropriately to copyright, privacy, and model misuse issues that may arise while utilizing generative AI.