Offcanvas
“챗GPT가 만든 테스트 안 된 코드를 사용한다”
61
%
자료 제목 :
개발자의 잘못된 관행
Developers Behaving Badly
자료 출처 :
SauceLabs
원본자료 다운로드
발행 날짜 :
2023년 10월 03일

AI / 개발자 / 머신러닝|딥러닝

기고 | AI가 만든 코드, 안전하게 쓰려면 ‘클린 코드’에 집중하자

2024.04.03 Phil Nash  |  InfoWorld
생성형 AI는 프로그래밍 과정에 많은 혁신을 불러일으키고 있다. 단 코드를 분석, 테스트, 검토하는 과정을 제대로 거쳐야 조직 내 진정한 혁신을 가져올 수 있을 것이다.
 
ⓒ Getty Images Bank

2023년은 개발자가 많은 변화를 겪은 해였다. 깃허브 코파일럿과 챗GPT가 2022년에 공개되면서 본격적으로 프로그래밍에 AI를 접목할 수 있었기 때문이다. 실제로 2023년 4월 공개된 소스그래프 설문조사 결과에 따르면, 개발자 95%가 코드 작성 시 생성형 AI를 사용한다고 답했다. 물론 생성형 AI는 개발자가 짧은 시간에 더 많은 코드를 작성하는 데 도움이 될 수 있다. 하지만 여기서 따져봐야 할 것들이 있다.

현재 소프트웨어 개발용 AI 도구라고 하면 챗GPT와 깃허브 코파일럿을 주로 떠올리지만, 구글 바드, 아마존 코드위스퍼러, 소스그래프의 코디라는 도구도 나와있다. 개발자는 일반적이고 반복적이며 복잡도가 낮은 코딩 문제를 해결하기 위해 생성형 AI를 사용하고 있다. 하지만 일각에서는 AI 코딩 도구가 복잡한 코드, 패턴을 이해하거나 취약점을 탐지하는 능력이 부족하다고 보고 있다. 깃허브가 코파일럿 초기 사용자를 분석한 결과, 개발자는 코드 속도가 빨라지고, 생산성이 높아지, 프로그래밍 과정에서 어려움이 줄었다고 응답했다. 이런 상황에서 우리가 주의해야 할 것은 무엇일까?

AI가 생성한 안전하지 않은 코드
비슷한 시기 스탠포드가 실시한 연구에 따르면, AI 코딩 도구를 사용한 참가자는 그렇지 않은 비교 그룹에 비해 안전하지 않은 코드를 작성했다. 그럼에도 그들은 AI 코딩 결과물이 안전하다고 스스로 평가하는 경향이 있었다. 한편, 소스랩스의 설문조사에 따르면 개발자의 61%가 챗GPT에서 생성된 테스트되지 않은 코드를 사용한다고 인정했으며, 28%는 그러한 코드를 정기적으로 사용하는 것으로 나타났다.

개발자들은 생성형 AI의 도움으로 코드를 더 빠르게 더 많이 코드를 작성하고 있다. 다시 말해 개발자는 스스로 AI가 만든 코드가 안전하다고 치부해 버리며 실제로는 전혀 안전하지 않은 코드를 작성하고 이를 테스트 없이 프로덕션 제품에 배포하고 있다. 2024년에는 AI 생성형 코드로 대형 소프트웨어 취약점이 처음으로 발견됐다는 소식이 나올 가능성이 높다. 자연스레 이런 문제의 책임을 AI 기술에 묻는 상황이 올 것이다.

이러한 경험을 피하려면 업계 전체가 개발자와 AI가 작성한 코드를 분석하고 테스트하며 품질 및 보안 표준을 준수하는 개발 관행을 두 배로 강화해야 한다. 조직은 작성 방식과 관계없이 코드를 분석, 테스트, 검토하여 신뢰할 수 있도록 보장하는 프로세스를 꼭 구축해야 한다.

새로운 관행으로 개발자는 현재와 미래 모두에서 위험 부담을 줄이며 AI 코딩 도구를 이용할 수 있다. 생성형 AI 도구는 새로운 만큼 그 성숙도는 낮다. 이런 기술을 올바른 방향으로 안내하기 위해 많은 사람의 감독이 필요하다. 그러니 검토 관행은 더 중요하다. 미래에는 어떤 모습이 될지 알 수 없지만, 코드를 관리할 수 있는 도구와 프로세스가 없다면 결국 배포하는 내용을 제대로 이해할 수 없을 것이다.

클린 코드 강화하기
AI 코딩 도구가 더욱 확산함에 따라, 조직은 내부 코드가 유지 관리가 가능한 수준이며, 신뢰할 수 있으며, 고품질이고, 안전한지 확인하기 위한 적절한 조치를 마련해야 한다. 그런 면에서 IT 리더는 ‘클린(clean) 코드 작성’을 최우선 과제로 삼아야 한다. (편집자 주: 클린 코드는 필자의 소속 기업 소나에서 제시하고 홍보하는 개념이다)

여기서 말하는 ‘클린 코드’란 일관성 있고, 의도적이며, 적응 가능하고, 책임감 있는 코드다. 이런 코드는 소프트웨어의 수명 주기 내내 최고 품질의 소프트웨어를 보장한다. 많은 개발자가 협업하며 코드를 작성하기에 누가 작성하던 코드는 다른 개발자가 언제든 쉽게 이해하고 수정할 수 있는 수준이어야 한다. 클린 코드를 사용하면 개발자는 코드의 맥락을 파악하거나 다른 팀 구성원의 코드를 수정하는 데 많은 시간을 소비하지 않고도 생산성을 높일 수 있다.

대규모 코드를 AI로 작성하려고 할 때, 클린 코드는 더욱 빛을 발한다. 이런 상황에서 클린 코드는 위험과 기술 부채를 최소화 해준다. 사실 사람이 작성하던 AI가 작성하든 개발 과정에서 적절한 테스트와 분석을 통해 ‘클린 코드’를 유지하는 것은 코드 품질을 높이는 데 매우 중요하다.

필자는 개발자가 사라질 것이라 믿지 않는다. 단 개발자의 업무 수행 방식은 분명히 바뀔 것으로 본다. 개발자가 AI를 사용하는 방식은 구글에서 무언가를 검색하는 것만큼이나 간단해지고 보편화될 것이다. 따라서 미래의 개발자는 업무 중 최신 AI 기술 사용법을 적극 탐구하며 AI의 단점을 어떻게 보완할지 고민해야 할 것이다.

AI가 만든 소프트웨어에 클린 코드가 포함되어 있는지 확인하면, 조직은 미묘한 버그나 보안 결함 같은 AI의 잠재적인 단점을 피할 수 있다. 거기다 예측 가능하고 지속 가능한 방식으로 소프트웨어에서 더 많은 가치를 창출할 수 있다. 앞으로 소프트웨어 개발의 지위와 미래가 AI로 복잡하게 바뀔 수 있을 만큼 적극적으로 클린 코드를 만드는데 투자해야 한다.

AI는 소프트웨어 개발에 많은 변화를 불러올 것이다. 거기다 현재의 디지털 비즈니스가 소프트웨어 개발 위에서 이뤄진다는 점에서 AI 코딩의 문제점을 적극적으로 알아봐야 한다. 아무런 견제 없이 AI가 만든 소프트웨어가 실행되도록 내버려두어서는 안 된다.

*필자 필 내쉬는 보안 기업 소나(sonar)의 개발자 어드보케이트다. 소나 이전에는 트윌리오에서 수석 에반젤리스트로 일했다.
ciokr@idg.co.kr
CIO Korea 뉴스레터 및 IT 트랜드 보고서 무료 구독하기
추천 테크라이브러리

회사명:한국IDG 제호: CIO Korea 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아01641 등록발행일자 : 2011년 05월 27일

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

Copyright © 2024 International Data Group. All rights reserved.