Kiwon Choi♦ , Dong Koo Kang* , Jin Tae Kim** and Ju Phil Cho°A Study on Improving S/W Remote Collaboration Development Using Generative AI TechnologyAbstract: The global IT industry is advancing at an unprecedented pace, yet the domestic IT market faces significant challenges, particularly a shortage of skilled talent due to the outflow of experienced professionals and limited inflow of new developers. To mitigate this issue, the application of generative AI tools has emerged as a promising solution. This study explores the potential of these tools to automate key aspects of the software development lifecycle, including the generation of deliverables, program development, and test code creation. The results demonstrate that the AI tools effectively adhere to industry standards in producing requirement documents and program specifications, with translation outputs suited for global collaborative development. Additionally, program development and test code generation were executed without any logical or syntactical errors. These findings suggest that generative AI tools can significantly enhance automation in software development, thereby addressing workforce shortages and improving overall process efficiency.s Keywords: Artificial Intelligence , Deep Learning , Generative AI , ChatGPT , Off-Shore S/W Development 최기원♦, 강동구*, 김진태**, 조주필°생성형 AI 기술을 이용한 S/W원격 협업개발 개선에 대한 연구요 약: 글로벌IT 분야는 빠르게 발전하고 있으나, 국내IT 시장은 고급인력 이탈과 신규 개발 인력 부족으로 인한 인력난을 겪고 있다. 이를 해결하기 위해 생성형 AI 도구의 활용이 주목받고 있으며, 본 연구는 해당 도구를 통해 소프트웨어 개발 산출물 작성, 프로그램 개발, 및 테스트 코드 과정을 자동화하는 방안을 실험하였다. 실험 결과, 요구사항 정의서와 프로그램 사양서 작성은 규격을 준수하며 글로벌 협업 개발이 가능한 수준의 번역 결과를 확인하였으며, 프로그램 개발과 테스트 코드 생성은 로직과 문법에 오류 없는 결과를 얻을 수 있었다. 본 연구는 생성형 AI 도구가 소프트웨어(S/W) 개발 과정의 일부를 자동화하는 데 효과가 있음을 확인하였다. Keywords: 인공지능, 딥러닝, 생성형 AI, S/W 원격 개발, ChatGPT Ⅰ. 서 론최근 생성형 AI 기술이 등장하면서 기계가 인간의 언어를 이해하고 대량의 요구사항을 수행하는 시도가 급격히 증가하고 있다. 인공지능, 머신러닝, 딥러닝, 그리고 생성형 AI는 인공지능의 하위 기술로 발전해 왔으며, 생성형 AI는 사용자의 요구에 따라 결과를 능동적으로 생성하는 기술로 최근 각광을 받고 있다[1]. 생성형 AI의 주요 기술 요소에는 LLM (Large Language Model), GAN (Generative Adversarial Network), VAE (Variational Auto-Encoder) 등이 있다. 생성형 AI의 핵심 기능은 사용자의 질문을 이해하고 분석하여 관련 정보를 스스로 찾아 요약하고 제공하는 것이다. 질문을 구체화하거나 맥락을 추가할수록 더 정확한 답변을 얻을 수 있으며, 이는 사람과 대화하듯이 맥락을 이해하고 답변을 제공한다는 점에서 기존 기술과 차별화되며, 특히 LLM은 거대 언어 데이터를 학습하여 텍스트 기반의 결과를 생성하는 핵심 기술이다[2-4,19,20]. 생성형 AI의 자연어 처리를 위한 핵심 알고리즘은 트랜스포머(Transformer)라는 알고리즘이다. 트랜스포머 알고리즘은 어텐션(Attention)이라는 메커니즘을 사용하는데, 이는 입력 문장과 출력 문장 사이의 관계를 파악하고, 입력 데이터를 되짚어보면서 어느 입력 데이터에 초점을 맞출지를 파악하고, 핵심이 되는 부분에 집중하여 더 빠르게 훈련하는 방식으로 최근 자연어 처리분야에 대단한 혁신을 일으켰다[3,5]. 최근 IT 업계에서 생성형 AI 도구 활용에 주목하는 이유는 방대한 범위의 데이터 학습으로 특별한 추가 학습 없이 많은 태스크를 수준 높게 수행하는 범용성이 높은 언어모델이라는 점이다. 이로 인해 사람이 작성한 글과 구분하기 어려운 수준의 높은 완성도의 글쓰기가 가능할 뿐만 아니라 문장의 요약, 번역 및 재구성 등이 가능하다. 또한, 복잡한 프로그래밍 언어 대신 간단한 자연어 명령 몇 줄만으로 일반인들도 쉽고 애플리케이션 개발이 가능하다[2,21]. 본 논문은 S/W 개발 과정의 문제를 해결하기 위해 생성형 AI 기술을 활용하여 기존의 개발 공정 일부를 자동화하고, AI와 협업하여 생산성을 향상시키는 방안을 제시한다. 이를 위해 현재의 오프쇼어(Off-Shore) 개발 방식에 기반하여 원격지에서 수행하는 주요 작업을 생성형 AI로 대체하고 그 결과를 분석하였다. 또한, 개발 생산성 향상을 위한 최적의 생성형 AI 기반 작업 모델을 제안하였다. Ⅱ. 연구개발 필요성2.1 소프트웨어(S/W) 개발 과정의 문제점최근 4차 산업혁명과 디지털 트랜스포메이션의 확산으로 IT 시장은 더 많은 개발 인력과 빠른 소프트웨어 출시를 요구하고 있다. 그러나 국내 IT 업계는 개발자 인력 부족 문제에 시달리고 있으며, 이로 인해 개발 기간 단축이 어려운 상황이며, 국내 업계에서는 개발자 부족이 가장 큰 원인으로 지적되고 있다[6]. 이러한 현상에 따라 다수의 기업들은 중국, 인도, 베트남 등에 원격 S/W개발센터를 구축하고, 해외 인력채용을 통해 국내 IT개발자 인력난을 해소해나가는 오프쇼어 개발방식이 늘어나고 있다[7]. 원격지 개발은 증가하였지만 원격 현장에서는 표준화된 문서 부족으로 업무 파악에 시간이소요되고, 경험 부족 개발자의 투입으로 개발 시간과 통합 과정에서 결함이 발생하여 테스트에 시간과 비용이 많이 드는 문제가 발생하고 있다[8]. 생성형 AI 기술 발표 이후, 많은 기업들이 이 기술을 활용하여 업무 생산성을 향상시키는 방법을 연구하고 있으며, 특히 컴퓨터 프로그래밍 언어의 이해와 생성에서 뛰어난 성능을 보여줌에 따라 소프트웨어(S/W) 개발 분야에서도 적극 활용될 것으로 예상된다[9-14,18,21]. 2.2 소프트웨어(S/W)개발 주요 단계S/W 개발은 요구사항 분석, 아키텍처 설계, 프로그램 구현, 통합 및 테스트 과정을 거쳐 제품을 출시한다. 다음으로 소프트웨어 개발의 단계를 살펴보겠다. 첫 번째 단계는 요구사항 분석이다. 이 과정의 목적은 S/W 구성 요소에 대한 요구사항을 수립하는 것이다. 고객의 요구사항을 도출하고 분석하여 최종적으로 원하는 제품을 설계할 수 있도록 한다. 요구사항의 주요 특성은 완전성, 일관성, 정확성, 테스트 용이성, 명확성, 설계 독립성, 전달성, 견고성, 필요성이다[15]. 두 번째는 설계 단계로, S/W 요구사항을 구현하고 검증할 수 있는 설계를 제공하는 것이 목표이다. 이 단계에서는 S/W가 어떻게 구현될지를 결정한다. 세 번째는 S/W 통합 단계이다. 이 과정의 목적은 S/W 단위를 결합하여 설계와 일치하는 S/W 항목을 생성하고, 동일하거나 적합한 운영 플랫폼에서 기능적 및 비기능적 요구사항을 충족시키는 것이다[16,17]. 네 번째는 테스트 단계로서, 이 단계의 목표는 통합된 S/W 제품이 요구사항을 충족하는지 확인하는 것이다. 통합 프로세스가 S/W 단위 간의 상호작용을 점검하는 반면, 테스트 프로세스는 전체 S/W 제품이 기능적 및 비기능적 측면에서 오류와 결함을 발견하고 수정하는 과정이다[16,17]. 표(Table) 1. 소프트웨어 요구사항 주요 특성 (Main characteristices of SW requirements)
Ⅲ. 연구 내용3.1 생성형 AI 기술 활용 실험 환경생성형 AI 기술 활용 실험 환경을 구성하기 위해 현재 많은 기업들이 운영하고 있는 해외 원격지 개발방식인 오프쇼어 개발을 실험 환경을 가정하였다. 오프쇼어 개발은 한국에서 요구사항을 전달하면 해외 원격지에서 요구사항 정의서 작성, 프로그램 개발, 프로그램 테스트를 수행하고 각 공정마다 한국에서 검증을 수행하는 방식을 취하고 있다. 이에 대한 Flow는 그림 1과 같다. 실험을 위해 활용된 생성형 AI 기술을 2023년 8월 한국 AI교육협회에서 측정한 AI 기술 성능 측정 순위에 따라 1위를 기록한 Open AI의 Chat GPT 3.5버전으로 선정하였고, 사용자 클라이언트 환경은 2023년 1월 기준 전 세계 데스크톱 컴퓨터 점유율 1위인 MS Windows 10 Pro. 버전을 채택하였다[22]. 기타 실험 환경은 표 2에 정리하였다. 표(Table) 2. 소프트웨어 요구사항 주요 특성 (Main characteristices of SW requirements)
생성형 AI 기술을 활용하여 S/W개발의 생산성 향상을 위한 실험방법은 오프쇼어 개발방식의 원격지 작업 단계를 참고하여 4단계로 나누어 실험하고 결과를 평가하였다. 첫 번째 단계는 요구사항 정의서 작성, 두 번째 단계는 프로그램 작성, 세 번째는 프로그램 사양서 작성, 네 번째 단계는 테스트 코드를 작성하는 실험을 각각 수행하였다. 그리고, 문서를 생성하는 실험은 한글과 영어를 생성하고, 영어를 한글로 재 번역하여 결과를 비교하였고, 실험 방식은 그림 2의 Flow와 같다. 3.2 요구사항 정의서 작성 실험 및 결과S/W개발의 첫 번째 단계인 요구사항 정의서 작성 실험은 앞서 설명한 그림 2의 ①번 영역으로서, 생성형 AI 기술을 활용하여 한글로 요구사항 정의서를 작성하고, 해외 원격지 개발을 위해 영어로 번역한 후 영어로 번역된 결과의 정확도 확인을 위해 한글로 다시 재번역하여 처음 생성된 한글 요구사항 정의서와 비교하는 방식으로 실험을 수행하였고 상세한 실험 Flow는 그림 3과 같다. 요구사항 정의서 작성은 기업용 임직원 관리 프로그램 개발을 주제로 작성하도록 요청하였다. 또한, 구체적인 요구사항 범위 지정이 필요하여, 인프라 환경은 AWS 기반의 클라우드 환경, 아키텍처는 MSA(Microservice Architecture) 구조, 세부 요구사항으로 겸직기능을 요청하였다. 또한, 생성형 AI 에게 문장을 생성하는 구체적인 톤(Tone)을 요청하였다. 요구사항 정의서 작성을 위해 생성형 AI 에게 입력한 명령은 4단계에 걸쳐서 한글로 표 3과 같이 전달했다. 표(Table) 3. 요구사항 정의서 작성을 위한 입력사항 (Input for requirements definition document)
한글 요구사항 정의서 작성을 실험한 결과 생성형 AI 도구는 사용자의 입력 값을 받아서 약 3초 이내에 A4 1장 분량의 요구사항 정의서를 출력하였고, 지속적으로 결과물의 보완이 가능한 것을 확인하였다. 한글 요구사항 정의서 생성 실험의 요약 결과는 표4와 같다. 해외 원격지 개발을 위해 요구사항 정의서를 영어로 번역하는 실험을 수행하였고, 영어 번역의 정확도 측정을 위해 다시 한글로 번역하여 최초 한글 문서와 비교하는 실험을 수행하였다. 영어로 번역한 요구사항 정의서를 요약한 결과는 표 5와 같다. 한글로 생성한 요구사항 정의서와 영어 생성한 결과를 비교한 결과 원본과 번역이 일치하는 것을 확인하였다. 표(Table) 5. 임직원 관리 요구사항 정의서 영어 번역 결과 (English translation result of staff care requirements definition document)
마지막으로 영문 요구사항 정의서를 다시 한글로 번역하여 최초로 생성한 한글 요구사항 정의서와 일치하는지 실험을 하였다. 재번역 실험을 수행한 최종 결과 목차에 대한 요약은 표 6과 같다. 표(Table) 6. 영문 요구사항 정의서를 한글로 번역한 결과 (Korean translation result of English requirements definition document)
한글로 최초 작성한 요구사항 정의서와 영문으로 번역 후 한글로 재번역한 요구사항 정의서를 비교한 결과 목차는 동일하나 세부적인 항목에서 단어 선택과 내용의 일부가 달라진 것을 확인하였다. 원본과 재번역 문서의 서론을 발췌해 비교 결과는 표 7과 같다. 표(Table) 7. 한글 원본과 한글로 재번역한 문서의 비교 (Comparison of Korean document and Korean re-translation document)
두 문서의 정확도 비교를 위해 기계 번역의 성능 평가지표인 BLEU(Bilingual Evaluation Understudy)와, 사람이 직접 원본과 비교하는 정성적 기법을 활용하였다. 정량적 성능 평가인 BLEU 측정 결과는 그림 4와 같으며, 결과는 높은 수준의 번역(High quality translations)으로 평가받는 53.92점이 측정되었다. 또한, 본 실험에 활용 기법이 다른 기법보다 우위에 있는지를 측정하기 위해 번역 전용 도구인 Google 번역기와 Naver Papago 번역기로 동일 실험을 수행하였고, BLEU 점수는 각각 Google 번역기는 28.56점, Naver 번역기는 28.63점을 기록하는 것을 확인하였고, 본 실험에 활용한 생성형 AI 도구가 더 우수한 품질의 결과를 생성해내는 것을 확인하였고 이에 대한 요약 결과는 표 8에 정리하였다. 표(Table) 8. 번역 도구별 BLEU 측정결과 비교 (Comparison of BLEU Scores Across Different Translation Tools)
결론적으로 S/W 개발을 수행하는 과정에서 생성형 AI 기술을 활용한 번역은 생산성 향상 측면에서 도움이되고, 번역 품질에 문제가 없음을 확인할 수 있었다. 다만, 문서의 성격에 따라 계약서나 법률정보와 같이 단어의 선택과 문장 표현의 차이가 민감한 경우에는 AI 기술을 통한 번역 결과의 활용에 주의가 필요하고 해당 분야의 전문가에 의한 추가적인 검증이 반드시 필요하다는 결론을 얻을 수 있었다. 3.3 프로그램 작성 실험 및 결과생성형 AI를 활용하여 프로그램을 작성하는 실험을 수행하기 위해, 앞선 실험을 통해 생성한 요구사항 정의서를 참고하여 임직원 관리 프로그램에서 입력받은 임직원 속성 정보를 데이터베이스에 입력하는 프로그램을 생성하는 실험을 수행하였다. 오프쇼어 개발환경을 재현하기 위해 한글과 영어로 각각 임직원 관리 프로그램 생성을 요청하고 결과를 비교하였다. 프로그램은 JAVA 언어를 기반으로 프로그램의 이름은 프로젝트의 코딩 컨벤션 규칙에 따라 사전에 지정하여 해당 규칙에 맞게 프로그램이 생성되는지 실험을 수행하였다. 이에 대한 상세한 실험 Flow는 그림 5와 같다. 3.4 S/W 개발을 위한 생성형 AI 기술 활용 고찰본 논문에서는 생성형 AI를 활용하여 S/W 개발 공정을 실험한 결과를 표 9에 제시하였다. 실험 결과를 요약하면, 첫째, 요구사항 정의서 작성과 번역에서 생성형 AI 도구는 요청된 요구사항을 누락 없이 반영하였으며, 번역 시 일부 단어를 의역하여 더 자연스러운 표현을 제공했다. 이는 S/W 개발에 실질적인 문제가 되지 않을 것으로 판단되었다. 표(Table) 9. 생성형 AI 기술 활용 실험 결과 (Result of generative AI application simulation)
둘째, 프로그램 작성 실험에서 생성형 AI는 다양한 프로그래밍 언어의 문법과 패턴을 학습하여 사용자 요구사항에 맞는 프로그램을 사람이 작성하는 코드와 유사하게 생성하였다. 또한, 약 50라인의 코드를 5초 이내에 자동 생성하며 개발 생산성 향상에도 기여할 것으로 예상된다. 세 번째, 프로그램 사양서 작성 실험 결과, 프로그램 문단 단위로 2-3줄의 설명이 생성되어 프로그램을 이해할 수 있는 수준으로 작성되었다. 동일 프로그램의 사양서를 한글과 영문으로 작성한 결과, 영문 사양서가 더 자세하고 많은 항목을 포함하였다. 이는 생성형 AI가 영문에 대해 더 많은 지식과 학습을 했기 때문으로, 프로그램 사양서는 영문으로 작성 후 한글로 번역하는 것이 더 효과적이라는 결론을 얻었다. 마지막으로, 개발된 프로그램의 테스트 코드 생성을 실험한 결과, 한글과 영문 모두 동일한 결과를 생성하였으며, 테스트 주도 개발과의 접목을 통해 개발자는 생성형 AI 도구를 사용하여 자신이 작성한 프로그램의 테스트 코드를 생성할 수 있음을 확인하였고, 본 실험의 단계별 활용 가능성에 대한 고찰은 표 10과 같이 요약할 수 있다. 표(Table) 10. 생성형 AI 기술 활용 가능성 고찰 (Survey of generative AI application possibility)
Ⅳ. 결 론이 연구에서는 S/W 개발 공정의 여러 문제점을 생성형 AI 도구를 활용하여 상당 부분 자동화하고 대체할 수 있음을 확인할 수 있었다. 현재 일부 제품에서는 이미 생성형 AI 도구를 소스 코드 생성에 부분적으로 활용하고 있지만, 본 실험 결과를 바탕으로 인간이 자연어로 요구사항을 전달하면 생성형 AI가 자동으로 요구사항 정의서를 작성하고 프로그램을 생성하며, 테스트 코드를 작성하고 검증하며 사양서까지 작성하는 높은 수준의 S/W 개발 공정 자동화 (Hyper Automation for S/W Development Process)도 가능할 것으로 기대된다. 다만, 생성형 AI 도구가 학습되지 않은 분야는 기존에 학습된 데이터를 기반으로 거짓된 정보를 생산할 수 있기 때문에 추가적인 학습이 필요한 분야는 보강 학습(Fine Tuning)을 수행하고, 지식시스템의 데이터를 검색을 통해서 보강하는 RAG(Retrieval Augmented Generation) 모델을 활용한다면 생성형 AI가 잘못된 답변을 제공하는 착각현상(Hallucination)을 예방하고, 더 사실기반의 자동화 작업을 수행할 것으로 생각된다. BiographyBiographyBiographyBiographyReferences
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||