본문 바로가기
기타

‘코드 생성은 시작일 뿐’··· 생성형 AI가 이끌 SW 개발의 변화 10가지

by K-Books 2024. 2. 16.
728x90
반응형

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

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

 

Image Credit : Getty Images Bank

생성형 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가지

앞으로 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에 의해 설정되거나 강화될 차세대 데브옵스 및 SRE 기능은 무엇일지 궁금해진다.

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

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

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

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

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

출처 : CIO KOREA

작성자 : Isaac Sacolick

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

728x90
반응형