loading...

생성형 AI가 가져올 소프트웨어 개발의 미래

이 글은 IDG의 아티클을 전재하여 제공합니다.
[원문보기] : https://www.ciokorea.com/column/325534

1990년대의 코딩이란 편집기를 선택하고 CVS 또는 SVN 코드 저장소로 코드를 보낸 후 실행 파일로 컴파일하는 것을 의미했습니다. 이후 이클립스(Eclipse), 비주얼 스튜디오(Visual Studio) 같은 통합개발환경(IDE)이 출현해 소프트웨어 개발 생애주기(SDLC)에 코딩, 개발, 문서 작성, 빌드, 테스트, 배포 등의 단계를 통합했습니다. 클라우드 컴퓨팅과 데브섹옵스(DevSecOps) 자동화 도구는 차세대 개발자 기능을 선보이며 더 많은 조직이 더욱 쉽게 애플리케이션을 개발, 배포, 유지할 수 있도록 했습니다.

다음 번 패러다임 전환의 기폭제는 생성형 AI입니다. 생성형 AI로 새로운 개발 도구와 패러다임이 가능해질 뿐 아니라 조직이 소프트웨어를 만들고 유지하는 방식이 달라질 것으로 보입니다. 이제 여러 개발자와 IT 리더로서는 AI로 인해 기존 방식의 코딩이 어떻게 변화할지 준비할 필요가 있습니다. AI가 향후 10년간 SDLC 및 데브섹옵스의 점진적인 발전에 어떻게 영향을 미칠 지도 감안해야 합니다. 이 두 가지 문제를 기반으로 앞으로의 전망과 아이디어를 살펴보겠습니다.

생성형 AI는 새로운 도구인가 아니면 새로운 개발 방식인가?

풀루미(Pulumi) CEO 조 더피는 지난 25년 간 일하면서 코드 반대파를 종종 봤지만 그들의 예상은 늘 빗나갔다고 했습니다. AI는 코딩을 대체하는 것이 아니라 자동화하고 강화할 것입니다. 그 결과 인간의 추상화 수준이 높아져 생산성과 산출 속도가 상당히 빨라질 것입니다.

소프트웨어 개발 분야의 고전이 된 프레데릭 브룩스의 저서 ‘맨먼스 미신’(The Mythical Man-Month)에 소개된 소프트웨어 개발 생산성 관련 연구가 있습니다. 해당 연구에 따르면, 생산성 측정 지표에서 최상 및 최하 사이의 비율이 평균 10:1인데 반해 프로그램 속도 및 영역 측정 지표에서는 놀랍게도 5:1입니다. 또 1995년에 출간된 20주년 기념판에 다시 게재된 1986년 글인 ‘특효약은 없다: 소프트웨어 공학의 본질과 우발적 사고’에는 “10년이라는 기간 내에는 그 자체로 소프트웨어 생산성을 10배 개선할 그 어떤 프로그래밍 기법도 나오지 않을 것”이라는 예견이 담겨 있습니다. 코파일럿과 기타 생성형 AI 코딩 기능이 위와 같은 기준을 넘어설지 여부는 아직 알 수 없습니다.

톰베스트 벤처스(Thomvest Ventures) 대표 아쉬쉬 카크란은 소프트웨어 전달 생애주기가 생성형 AI에 의해 완전히 달라지고 있다고 말합니다. 엔지니어 10명 몫을 해낼 수 있는 존재가 확산하면서 개발팀과 데브옵스팀의 생산성이 향상될 것입니다.

생성형 AI 기능의 성숙에 따른 개발자 역할이 재조정되면, 비약적인 생산성 향상과 소프트웨어 개발 기술의 민주화가 불가능한 것도 아닙니다. 매틸리온(Matillion) CTO 에드 톰슨은 현재 형태의 코파일럿은 쓸데없이 바쁜 업무를 없애 개발자 생산성을 높이는 것이 주목적이라고 강조합니다. 따라서 코파일럿으로 이미 업무가 근본적으로 달라졌다고 생각한다면 개발자의 업무가 코드 작성이라고 착각하기 때문이라고 합니다. 개발자의 업무 본질은 문제 해결이라고 정의합니다.

생성형 AI로 인한 소프트웨어 개발의 변화

앞으로 10년 동안 생성형 AI로 인해 소프트웨어 개발은 어떻게 변모할까요? 전문가들이 공유한 10가지 예측을 소개합니다.

  • 자연어 프롬프트에서 코드를 생성하는 것이 표준화된다
  • 코드 검증은 개발자의 주요 책임이다
  • ‘조립’이 새로운 개발 패러다임
  • 코딩 작업은 줄어드는 반면 코드 공급망 위험은 커진다
  • 통합을 가속하는 새 패러다임이 등장한다
  • 개발자가 AI 에이전트의 관리자 노릇을 한다
  • AI가 SDLC의 여러 단계에 관여한다
  • 생성형 AI 및 인간 개발 페르소나가 등장한다
  • AI가 개발 과정 중에 운영 능력을 향상시킨다
  • 조직은 AI 위험으로부터 스스로를 보호해야 한다


자연어 프롬프트에서 코드를 생성하는 것이 표준화된다

어스트로노머(Astronomer) 기류공학책임자 칵실 네이크는 코딩 작업이 더욱 효율화될 것이라고 합니다. AI가 표준 코드를 생성해 주고 코파일럿이 자연어를 기능 코드로 변환하는 주기 때문에 복잡한 코드베이스의 이해 과정이 간단해지고 모범 준칙이 준수될 것입니다.

스택오버플로(StackOverflow)의 2023년 개발자 설문조사 결과, 개발자 중 70%가 개발 과정에 AI 도구를 활용하고 있거나 활용할 계획인 것으로 나타났습니다. 이미 개발에 AI를 활용 중인 개발자 중에서 82% 이상이 코드 작성에 AI를 활용하고 있습니다. 이 수치는 개발자의 코드 개발, 기존 코드 재사용, 구성요소 구축 방식에 패러다임 전환을 암시합니다.

코드 검증이 개발자의 주요 책임이다

프롬프트로 코드를 생성하면 위험 요소가 늘어날 수 있습니다. 가령 생성된 코드에 보안 문제나 결함이 있거나 성능 문제가 새롭게 야기되는 경우가 그렇습니다. 코딩이 쉬워지고 빨라지는 만큼 개발자가 애플리케이션에 포함시킬 코드를 사전 검증할 시간과 책임, 더 좋은 도구도 늘어나기를 바라지만 아직은 지켜봐야 할 상황입니다.

소나(Sonar) 개발책임자 피터 맥키는 개발자들이 생산성 향상을 위해 AI를 채택하면 AI의 생산물을 점검할 의무적인 책임이 있다고 했습니다. 코딩과 동시에 정리 작업을 수행해야 합니다. 즉, 전달 과정이 진행되는 동안 점검과 지속적인 모니터링을 수행한다면 개발자는 사람이 만들었건 AI가 생성했건 코드에서 버그를 수정하는 작업보다는 새로운 작업에 더 많은 시간을 쓸 수 있습니다.

CIO와 CISO는 특히 AI로 생성된 코드로 인해 상당한 취약점이 발생하는 경우 개발자가 코드 검증을 더 많이 수행하도록 조치해야 합니다. 만일 AI로 생성된 코드를 자동으로 검사하고 모니터링하는 기능이 구현되지 않으면 수정할 코드가 기하급수적으로 늘어나고 기술 부채도 늘어나게 됩니다.

‘조립’이 새로운 개발 패러다임

생성형 AI 도구를 코드 개발에 활용한다면 각종 개발팀이 다양한 애플리케이션을 만드는 대규모 기업의 경우 좀 더 문제가 될 수 있습니다. 조직 내 도구와 표준에는 어떤 영향을 미칠 것인가라는 문제입니다.

레드햇(Red Hat) 개발자담당 마커스 아이젤은 팀마다 서로 다른 도구를 사용한다면 표준의 부재와 복잡한 온보딩이라는 문제가 출현하게 된다고 역설했습니다. 개발자의 인지적 부하 또한 증가할 것입니다. 이런 상황을 타개하기 위해 다양한 모범 사례와 중앙집중식 개발자 포털을 통한 손쉬운 접근이라는 해법이 등장했습니다. 여기에 애플리케이션 플랫폼의 강화된 기능을 더한다면 마찰을 제거하고 팀 경계를 넘어 모범 사례를 적용하는 데 도움이 될 가능성이 있습니다.

이것이 시사하는 바는 IDE가 제조 분야의 컴퓨터 지원 설계(CAD)나 건설 분야의 빌딩 정보 모델링(BIM)과 비슷한 조립형 플랫폼으로 변모할 수 있다는 것입니다. 커스텀 구성요소 구축에 맞춰졌던 초점이 기존 구성요소 조립과 내장 도구를 활용한 설계 검증에 맞춰집니다.

코딩 작업은 줄어드는 반면 코드 공급망 위험은 커진다

생성형 AI로 개발된 코드는 기업의 소프트웨어 공급망 선택과도 관련성을 가질 수 있습니다. 지금까지 기업들이 가장 걱정한 부분은 오픈소스와 상용 소프트웨어 구성요소를 추적하는 것이었는데 생성형 AI로 인해 우려해야 할 새로운 영역이 추가되었습니다.

소나타입(Sonatype) 현장 CTO 일카 투루넨은 데브옵스 실무자들이 AI 공급망 유지 및 관리에 주요한 역할을 하게 될 것이라고 합니다. 즉, AI 기반 모델의 보안과 정확성, 출처는 기업의 일상 업무에서 더욱 철저히 검토된다는 것입니다. AI 위험을 평가하고 AI 모델의 제품구성사양(BOM)을 적절히 관리하는 전략을 실행한다면 모든 조직의 데브옵스 인프라 전반에 걸쳐 적절한 AI 위생 및 관리를 보장하는 데 도움이 될 것입니다.

SAST, DAST, 기타 보안 및 코드 관리 도구로 인해 코드 검사 자동화 기능이 늘어날 것으로 예상됩니다. 또한, 개발자가 코드를 기업 저장소에 통합하기에 앞서 생성형 AI 코드가 정책을 충족하는지 여부를 검증할 때 위와 같은 도구가 도움이 될 것입니다.

통합을 가속하는 새 패러다임이 등장한다

개발자들은 통합 영역에서 새로운 기능을 기대할 수 있습니다. 통합 분야에서는 이미 지난 10년 동안 API, IFTTT SaaS 통합 플랫폼, 서비스형 통합 플랫폼(iPaas), 기타 생태계 기술을 통해 대폭 향상된 기능이 나온 바 있습니다. 그럼에도 불구하고 개발자들은 여전히 데이터 필드 매핑, 트랜스포메이션 논리 코딩, 신뢰성 보장, 성능 고려사항에 맞는 조정 등을 위해 많은 작업을 수행하고 있습니다.

SAP AI혁신팀 소속 에마뉴엘 카시마티스는 통합 측면에서 과거의 개발 생애주기는 설계, 빌드, 테스트, 통합, 배포, 인도, 검토 등 여러 단계에 걸쳐 매우 파편화된 상태였지만, AI는 다양한 애플리케이션에서 추출한 데이터를 활용하여 이를 통일할 수 있도록 할 것이라고 했습니다. 생성형 AI 덕분에 개발자들이 코드를 직접 작성할 필요도 없고 오류도 자체적으로 수정되며 자연어 요건 및 자동 생성 비주얼 플로우를 갖춘 통합을 구축하게 되는 것은 시간 문제일 뿐입니다.

개발자가 AI 에이전트의 관리자 노릇을 한다

허니콤(Honeycomb) 수석제품관리자 필립 카터는 생성형 AI로 인해 향후 개발자와 품질보증(QA) 엔지니어가 하게 될 작업이 크게 달라질 것으로 보고 있습니다. 잠재적으로 먼 미래에는 자연어로 코드를 생성하고 생성된 코드를 검증하는 테스트를 실시할 일이 많아질 가능성이 높습니다. AI 기술에 트랜스포머 같은 엄청난 변화가 또 생긴다면 AI 에이전트가 이 작업의 대부분을 하고 개발자는 AI 에이전트가 따를 제약과 목표를 프로그래밍하는 모습을 예상할 수 있습니다.

AI에 조종대를 맡기는 새로운 대전환이 발생하면, 프로그래밍 된 에이전트가 QA, 관찰가능성, 미지의 사항 확인용 보안 작업을 위한 런타임 동작을 분석하도록 설정될 수 있습니다. 개발자와 엔지니어가 기술 스택을 높여 아키텍처, 비기능 및 운영 요건을 정의하는 수준에 이르게 되면서 코드 생성과 테스트 자동화 작업을 직접 하기보다는 생성형 AI가 개발 및 테스트 작업을 하도록 지도할 것입니다.

AI가 SDLC의 여러 단계에 관여한다

오늘날 코파일럿과 여러 생성형 AI 도구는 코딩에 중점을 둡니다. 그러나 향후 새로운 기능들이 등장해 SDLC의 다른 단계와 책임이 크게 달라질 것으로 예상됩니다. 긱스터(Gigster) 수석솔루션엔지니어 험버토 모레이라는 생성형 AI를 SDLC에 포함시키기 위해 모범 사례들이 점진적으로 발전할 것이라고 언급했습니다. 이 과정에서 SDLC의 특정 단계에 가장 잘 작동하는 모델은 상이할 수 있습니다. 예를 들면, 요건에 최적화된 모델, 코드 개발에 최적화된 모델, QA에 최적화된 모델 등이 서로 다를 것입니다. 생성형 AI 패러다임 전환은 이미 QA에 영향을 미치고 있습니다. 이는 도구 덕분에 더욱 강력한 테스트 사례는 물론 코드 변경사항에 대한 더욱 빠른 피드백이 가능해짐에 따른 것입니다.

데스코프(Descope) 공동 창립자 길라드 쉬리키는 AI의 등장과 관련해 아직 논의가 덜 된 측면은 코딩 주변의 모든 설비가 어떻게 변화하는지 목격하는 것이라고 합니다. SDK, 테스트, 문서를 AI로 생성하거나 AI로 보조하게 되는 일은 이제 시간문제입니다. 즉, 개발자는 AI가 소비할 수 있는 구체적인 형식으로 코딩하고 작업 내용을 문서화해야 한다고 주장합니다. 이는 가상 비서가 이해하도록 개발자가 자신의 언어를 조절해야 할 수도 있음을 시사합니다. 그리고 이는 생성형 AI가 편리함은 가져다줄지언정 생산성이나 품질 향상은 주지 않을 수도 있다는 의미일 수도 있습니다.

생성형 AI 및 인간 개발 페르소나가 등장한다

소프트웨어 개발에서 생성형 AI의 역할은 현재 인간 개발자가 맡고 있는 역할과 책임에서 파생되어 나올 수 있습니다. 코드 생성기, 컴파일러 같은 도구와 기타 개발 도구는 인간 페르소나는 물론 머신 페르소나의 역할도 할 것입니다.

체인가드(Chainguard) 엔지니어링담당 VP 더스틴 커클랜드는 흥미로운 점은 코드에 대한 새로운 관점이 생길 가능성이 보이는 것이라고 합니다. 첫 번째 관점은 코드에 대한 전통적인 인간의 관점으로 개발자들이 훈련받고 읽고 쓰기에 익숙한 관점입니다. 두 번째 관점은 약간 숨겨져 있는데 AI 보안이 최적화된 방어적인 관점입니다. 이 관점은 인간이 읽기에는 상대적으로 어렵지만 컴파일러와 해석기는 완벽하게 읽어낼 수 있으며 이런 식으로 그저 또 하나의 중간 코드 형식이 됩니다. 문제는 대안으로 제시된 관점으로 볼 때 과연 머신러닝의 능력이 향상되어 결함과 보안 문제, 기타 문제점을 보다 정확하고 효율적으로 식별할 것인가 하는 것입니다.

AI가 개발 과정 중에 운영 능력을 향상시킨다

론치다클리(LaunchDarkly) 개발자경험책임자 코디 드 아클랜드는 다음과 같이 생성형 AI로 애플리케이션 신뢰성 및 운영을 향상시킬 수 있는 사용 사례를 제시했습니다.

  • 학습된 설계 표준과 일치하는 웹 애플리케이션 구성요소를 개발한다
  • 개발자가 새로운 기능을 구축하면 이를 탐지하는 기능 플래그를 만든다
  • 새로운 소프트웨어 배포(CI/CD)를 단계별로 준비하되 문제가 인지되면 롤백한다
  • 배포 이후가 아닌 커스텀화 된 실행으로부터 QA에 실시간 피드백을 제공하는 루프를 설정한다


상호작용을 통한 개발 도구의 학습 능력 방식을 보여 주는 초기 징후가 보입니다. 관건은 직관적인 지원이 될 것이라는 점입니다.

조직은 AI 위험으로부터 스스로를 보호해야 한다

마지막 예측은 생성형 AI를 조직의 코드 및 데이터를 포함한 지적 자산에 노출시키는 위험에 관한 것입니다. 생성형 AI로 인해 SDLC 전체에 걸쳐 새로운 기능이 가능해면, 과연 장점이 위험보다 더 클지 여부에 대한 새로운 의문이 생길 것입니다.

탭나인(Tabnine) 비즈니스개발담당 VP 브랜든 정은 소프트웨어 개발 과정 처음부터 끝까지 AI를 적용하여 진행한다는 비전을 향해 노력하고 있다고 했습니다. 기술 전문가들 전체의 바람은 코드가 최고의 품질로 생성될 뿐만 아니라 생성된 모든 코드는 애플리케이션의 전반적인 신뢰성이나 유지 가능성을 해치지 않는다는 것을 확실히 하는 것입니다. 모델(본인의 것과 훈련 세트 둘 다)에 입력되는 데이터를 예의 주시하면서, 시간과 노력을 들여 AI를 평가하고 선택한 후 배포하되 본인의 정책은 물론 본인의 가장 귀중한 자산인 코드와 데이터를 보호하는 방식으로 해야 합니다.

문제는 ‘과연 생성형 AI 알고리즘과 이를 가능하게 하는 도구가 기업의 자산을 보호할 안전장치를 구축할 것인가, 그런 안전장치 가운데 얼마나 많은 부분이 역시 생성형 AI 기능에 의존할 것인가’입니다.

생성형 AI를 활용한 소프트웨어 개발의 시대는 아직 초기 단계입니다. 그러나 앞으로 AI를 활용한 새로운 소프트웨어 개발, 테스트, 배포, 유지 방식이 등장할 것이고 코드 생성과 코파일럿은 그 시작에 불과하다는 사실이 점점 더 분명해지고 있습니다.

IDG logo

▶   해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 기고자에게 저작권이 있습니다.
▶   해당 콘텐츠는 사전 동의 없이 2차 가공 및 영리적인 이용을 금하고 있습니다.


이 글이 좋으셨다면 구독&좋아요

여러분의 “구독”과 “좋아요”는
저자에게 큰 힘이 됩니다.

subscribe

구독하기

subscribe

Isaac Sacolick
Isaac Sacolick

StarCIO의 Founder 겸 InfoWorld의 Contributing Editor

애자일, 데브옵스, 데이터 과학을 다룬 ‘Driving Digital: The Leader’s Guide to Business Transformation through Technology’의 저자

공유하기