AIㆍML / 개발자

글로벌 칼럼 | "AI는 나의 부조종사" AI 코드 생성의 가능성과 위험성

Jeremy Duvall | InfoWorld 2023.06.28
AI를 사용하는 소프트웨어 엔지니어는 엔지니어 혼자 또는 AI 혼자 작업하는 것보다 놀랍도록 뛰어난 능력을 발휘할 것이다. 제대로 활용하기만 하면 된다.

소프트웨어 엔지니어의 역할이 근본적인 변혁의 정점에 서 있다. 이런 변화를 주도하는 것은 한창 인기를 얻고 있는 생성형 AI와 그 기반이 되는 대규모 언어 모델(LLM)이다. 여기서 생성형 AI가 실제로 인공지능인지 따지지는 않겠지만, LLM이 인상적인 역량을 갖추고 있다는 것은 의심의 여지가 없다. 

소프트웨어 엔지니어링의 혁신은 멈출 수 없다. LLM은 너무나 좋아져 이제 양질의 코드를 작성하도록 교육하지 않는 것이 어리석은 일이 됐다. AI를 도입하지 않는 IT 부서나 소프트웨어 엔지니어링 회사는 필연적으로 뒤처지고 당면 과제와의 관련성이 떨어질 수밖에 없다. 마찬가지로 AI를 거부하는 개발자는 곧 대체 가능한 존재가 될 것이다.
 
ⓒ Getty Images Bank

이 모든 변화는 세상이 제시하는 가장 어려운 문제를 해결할 수 있도록 우리의 능력을 강화할 수도 있고, 아니면 끔찍하고 피해를 주는 위험한 코드를 현장에 배치하는 속도를 가속화할 수도 있다.
 

과거에도 일어났던 일

필자는 어렸을 때 처음 웹사이트를 만들면서 웹사이트 개발을 자동화해 준다는 드림위버(Dreamweaver)라는 툴을 사용한 적이 있다. 템플릿을 선택해 문구와 이미지를 추가하고 위지위그(WYSIWYG) 방식으로 조정하면, 드림위버가 사이트의 HTML과 CSS를 자동으로 생성했다.

드림위버는 그럭저럭 작동했다. 생성된 코드는 일반적으로 유지 관리가 불가능한 엉망진창이었기 때문에 배치하기 전에 항상 HTML을 편집하곤 했지만, 그래도 HTML과 CSS를 처음부터 작성하는 것보다 훨씬 빨랐다.

이제 26년이나 된 드림위버는 잠재력만 가득하던 초창기 시절과는 비교할 수 없을 정도로 발전했다. 하지만 웹 개발자가 모두 실업자가 되는 일은 일어나지 않았다. 또한 약간의 교육이나 유튜브 학습을 통해 누구나 할 수 있는 일임에도 불구하고 HTML을 작성해 웹 사이트를 처음부터 개발하는 사람도 거의 없다.

지금도 드림위버를 사용해 웹사이트를 개발할 수 있으며, 많은 개발자가 드림위버를 사용한다. 개발자의 역량과 웹사이트의 요구사항에 따라 비주얼 스튜디오 코드(Visual Studio Code), 윅스(Wix), 드루팔(Drupal), 리액트 네이티브(React Native), 워드프레스(WordPress), 스퀘어스페이스(Squarespace) 같은 고도로 템플릿화된 웹사이트 빌더 중 하나를 사용할 수도 있다. 이 중 어떤 것을 사용해야 하고 사용하지 말아야 하는지에 대한 의견이 분분하지만, 지금 이야기하는 관점에서는 중요하지 않다.

하지만 아무리 직관적인 플랫폼을 사용하더라도 최고의 결과와 흥미로운 웹사이트 기능을 구현하려면 여전히 웹 개발자가 필요하다. 웹 사이트에 대한 큰 그림을 결정하는 것뿐만 아니라 HTML, CSS, 자바스크립트 등 다양한 기술을 활용해 웹 사이트를 개선해야 하기 때문이다. 자동화된 보조 툴이 이런 기술을 무의미하게 만든 것은 아니다. 

대신 자동화된 툴 덕분에 개발자는 단순 웹사이트를 개발하는 반복적인 작업에서 벗어났으며, 웹사이트를 만들기 전이나 만들면서 흔히 발생하는 오류도 쉽게 찾을 수 있게 됐다. 그 결과 웹사이트에 필요한 쉽고 익숙한 기능의 개발 속도가 빨라졌고, 개발자는 더 흥미로운 도전과 맞춤형 기능에 집중할 수 있다.

결국, 툴이 사람을 대체한 것은 아니다. 툴은 사람의 역량을 강화했을 뿐이다.
 

LLM의 발전

LLM과 생성형 AI가 분수령을 맞았다는 것은 굳이 설명할 필요가 없다. GPT-3, GPT-4, 챗GPT, 구글 바드 등은 주변부 호기심에서 벗어나 문화적 강박으로 발전했다. 물론 과대광고도 있지만, 사람들이 이런 신기술을 적용하는 영리한 방법을 찾으면서 정말 흥미로운 혁신도 많이 일어나고 있다.

필자의 회사는 엔지니어의 삶을 더 쉽고 효율적으로 만들어 주는 양질의 툴에 대한 투자를 중요하게 생각하기 때문에 최근 모든 엔지니어를 위해 깃허브 코파일럿(GitHub Copilot) 라이선스를 구매했다. 물론, 아마존 코드위스퍼러(Amazon CodeWhisperer)도 관심 있게 지켜보고 있다. 깃허브 코파일럿은 GPT-4와 챗GPT를 개발한 오픈AI가 만든 OpenAI 코덱스를 기반으로 한다. 따라서 코파일럿은 기본적으로 소프트웨어 엔지니어링을 전문으로 하는 챗GPT의 사촌이라고 할 수 있다.

엔지니어들이 깃허브 코파일럿을 사용하는 방법은 다음과 같다.
 
  • 지루한 작업 간소화. 코파일럿을 사용하면 인터페이스의 변수를 채우거나 함수 또는 동작을 템플릿화하는 등의 지루한 작업을 더 빠르게 완료할 수 있다.
  • 지능형 자동 완성 : 코파일럿은 엔지니어가 원하는 바를 직관적으로 파악해 코드를 자동으로 완성하는 데 탁월하다. 이 기능은 반복적인 코드 또는 테스트 사례를 작성할 때 특히 유용하며, 코파일럿은 테스트를 자체적으로 생성하고 테스트의 다음 조건을 정확하게 예측할 수 있다.
  • 패턴 감지 및 오류 처리 코드 생성 : 코파일럿은 코드에서 새로운 패턴을 감지하고 그에 따라 코드를 다시 작성할 수 있을 뿐만 아니라 함수에 대한 오류 처리 코드도 생성할 수 있다.

엔지니어들은 깃허브 코파일럿이 시간을 절약하고 효율성을 높이는 데 큰 도움이 된다는 것을 알게 됐다. 하지만 코파일럿이 완벽하지는 않으며, 종종 잘못된 코드를 생성할 수 있다는 점에 유의해야 한다. 깃허브와 오픈AI는 이런 사실을 투명하게 공개하고 있으며, 자격을 갖춘 소프트웨어 엔지니어가 확인하기 전까지는 코드를 신뢰하지 말라고 경고한다.

여기서 "잘못된 코드"란 프로그래밍에 대한 감각이 조금이라도 있는 사람이라면 토할 정도로 무작위적이고 이상한 쓰레기 코드를 의미한다.

초기에 필자는 챗GPT에 C 언어의 악명 높은 strcopy()를 구현해 달라고 요청해 봤는데, 그 결과 버퍼 오버플로우 공격에 취약한 함수가 만들어졌다. 물론 필자가 지적하자마자 문제를 해결했지만, 챗GPT의 안이한 접근 방식은 어떻게 보더라도 좋지 않았다. 또한 회사 엔지니어들이 챗GPT로 생성한 코드도 보여줬는데, 기능은 좋았지만 유지보수나 리팩터링 또는 확장을 생각하면 악몽 같은 코드였다.

인간 개발자는 쓸모없지 않다. 전혀 그렇지 않다.
 

가속화되는 AI 광풍

깃허브 코파일럿, 아마존 코드위스퍼러, 구글 바드 등 어느 것이든 조만간 다가올 특이점에서 생성형 AI는 우리가 소프트웨어 엔지니어링에서 가장 중요한 가치라고 생각한 것을 증폭시킬 것이다.

품질보다 속도를 우선시하는 개발자나 부서 및 조직에 LLM은 끔찍한 소프트웨어를 함께 해킹해 프로덕션에 배치하는 속도를 높여줄 것이다. 현재와 같은 추세라면, 향후 10년간은 이런 혼란이 계속될 것이다.

코드를 흔한 일용품으로 보고, 엔지니어를 코드 생성 기계의 톱니바퀴로 보는 사람들에게 LLM은 기존 솔루션으로 이미 잘 알려진 요구 사항을 해결하는 상상할 수 없는 파생 소프트웨어를 자동으로 조립해 줄 것이다. 이는 정체로 이어지고 지속 가능한 이득을 아무것도 얻지 못할 것이다.

그러나 흥미로운 문제에 대한 혁신적인 솔루션(품질로 제작되고 비판적 사고로 검증된)을 중시하는 사람들에게는 LLM이 더 미묘하고 만족스러운 잠재력을 제공한다. 인간 엔지니어와 생성형 AI는 중요한 과제에 대한 안전하고 안정적이며 지속 가능한 솔루션을 만드는 데 우선순위를 두는 하이브리드 파트너십을 맺고 각자의 강점을 살릴 수 있다.

이런 잠재력을 실현하기 위해서는 LLM의 품질을 향상시킬 수 있는 교육이 필요하다. 한편, 우리 인간은 팀에 기여하면서도 새로운 협업자로부터 최고의 성과를 이끌어내는 방법을 배워야 할 것이다.
 

철기 시대

우리는 AI 혁명의 초기 단계에 있다. LLM은 철광석 덩어리 단계로, 수많은 가능성을 품고 있지만 아직은 함께 부딪혀서 소리를 낼 수 있는 큰 바위에 불과하다. 우리는 강철 검이나 쟁기를 만들어야 한다. 그것이 무엇이든 우리의 필요와 가치에 가장 적합하다고 판단되는 도구를 만들어야 한다.

필자에게 이런 툴은 안전하고 안정적이며, 확장 가능하고, 유지 관리가 용이하고, 가용성이 높고, 깔끔하고, 스타일도 좋은 코드를 생성하도록 LLM을 교육하는 것이다. 생성형 AI가 테스트 중심 개발을 수행하도록 훈련시켜야 한다. 그리고 가장 중요한 것은 인간 기장을 위해 좋은 부조종사가 될 수 있도록 훈련시키는 것이다. 

필자와는 다른 가치를 추구하는 사람들은 완전 자동화된 코드 조립 기계를 만들어 기장이 필요없는 비행기를 일용품화하고 인간 세상을 기껏해야 파생적이고 종종 위험한 시스템과 소프트웨어 세상으로 전락시킬 것이다. 이런 결정은 IT 업계에 참혹한 결과를 가져다줄 것이며, 혁신적이고 새로운 가능성을 낭비하는 동시에 취약성과 치명적인 결함을 가속화할 것이다.

10년 후, 필자의 회사가 무책임하게 적용된 AI의 디스토피아적 쓰레기 더미를 치우는 일로 수익을 올리지 않기를 바란다. 자동화된 어리석음의 여파를 처리하는 것이 아니라 인류의 더 큰 야망을 실현하기 위해 우리의 역할을 다하고 싶다.

필자는 똑똑한 사람들이 이미 생성형 AI를 인간 엔지니어의 훌륭한 협력자가 되도록 훈련하고 있다고 믿는다. 만약 그렇지 않다면, 필자라도 그런 프로젝트에 자원하고 싶다. 우리가 이 일을 제대로 해낸다면 훌륭한 엔지니어들을 쓸모없는 존재로 만들지 않을 것이다. 그보다는 훌륭한 엔지니어를 기계와 정신이 융합된 터무니없이 훌륭한 사이보그 하이브리드 엔지니어로 만들어 오랜 과제를 해결하고 인간이나 AI가 혼자서 구축할 수 있는 것보다 더 강력한 솔루션을 만들 수 있게 할 것이다.

필자는 로봇 협력자를 환영한다. 로봇은 우리의 일자리를 뺏으러 온 것이 아니다. 우리가 로봇을 잘 훈련시키고 책임감 있게 활용한다면, 로봇은 우리를 더 나은 사람으로 만들어줄 것이다.

*Jeremy Duvall은 맞춤형 클라우드 네이티브 소프트웨어 솔루션 업체인 7팩터 소프트웨어(7Factor Software)의 설립자이다.
editor@itworld.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.