AI 코딩 프로그램 장단점: 코딩 속도와 품질

테코피디아 신뢰성

AI 코딩 프로그램, 속도에는 좋을지 모르지만 개발자가 양질의 코드를 작성하는 데 도움이 될까?

모든 소프트웨어 애플리케이션의 핵심은 코드베이스다. 의도한 기능 및 아키텍처 결정과 같은 요소에 따라 코드베이스는 수천 줄에서 수백만 줄까지 다양하다. 이 코드는 종종 재사용 가능한 라이브러리와 API(애플리케이션 프로그래밍 인터페이스)를 통한 다른 구성 요소와의 인터페이스에 의존하며, 복잡성을 관리하기 위해 모듈식 컨테이너와 마이크로서비스로 구성될 수 있다.

소프트웨어 개발 라이프사이클과 관련된 모든 엄격함을 고려할 때, 개발자가 처음부터 수동으로 코드를 작성하는 것은 항상 어려운 일이었다.

새로운 인공지능(AI) 지원 세상에서 많은 개발자가 깃허브 코파일럿이나 챗GPT와 같은 AI 코딩 프로그램을 사용하고 있으며, 깃허브의 연구에 따르면 현재 미국 기반 개발자의 92%가 코딩 속도와 생산성을 높이기 위해 AI 코딩 프로그램을 사용한다고 한다.

이러한 장점에도 불구하고 깃클리어에서 발표한 새로운 연구에서는 AI 코딩 프로그램가 단점 없이 소프트웨어 개발을 발전시키고 있다는 믿음에 의문을 제기했다. 이 보고서는 1억 5천만 줄 이상의 코드를 분석한 결과, AI 모델 기반 개발이 부상한 이후 코드 이탈이 증가하고 재사용이 감소했다는 사실을 발견했다.

이러한 상황은 깃허브의 주장처럼 AI 코딩 프로그램이 속도 면에서 뛰어나다면, 생성된 코드의 품질과 안전성에 대해서는 어떻게 말할 수 있을지에 대한 의문을 제기한다.

주요 내용

  • 컨텍스트에 따라 코드 완성도를 제안하여 속도와 생산성을 높여주는 깃허브 코파일럿이나 챗GPT와 같은 AI 코딩 프로그램은 개발자들 사이에서 점점 인기를 얻고 있다.
  • 하지만 이러한 장점에도 불구하고 AI 프로그램 기반 생성된 코드의 품질, 즉 코드 이탈과 향후 기술 부채는 없는지 의문을 제기해야 한다.
  • AI 코딩 프로그램은 개발 속도를 높일 수 있지만 신중하게 사용하지 않으면 코드 품질이 저하될 수 있으므로 코드를 포렌식적으로 검토하고 검증해야 한다.
  • 개발자는 보안에 대한 과신으로 보안성이 떨어지는 코드를 작성할 경우 발생할 수 있는 위험에 주의해야 한다.
  • 다양한 개발자와 코드 전문가에게 AI 코드 개발의 최전선에서 바라본 분석을 들어보자.

AI 코딩 프로그램: 작동 원리 및 이용

깃허브 코파일럿, 디비 AI, 아마존 코드위스퍼러와 같은 AI 코딩 프로그램 소프트웨어 개발자가 코드를 작성, 검토, 디버깅할 때 AI를 사용하는 도구이다.

이러한 도구는 대규모 코드 데이터 세트에 대해 학습된 생성 AI 모델과 대규모 언어 모델(LLM)을 활용하여 통합 개발 환경(IDE)에서 코드의 줄과 블록에 대한 완성도를 제안한다.

개발자가 입력하면 어시스턴트가 컨텍스트에 따라 일반적인 구문, 변수/함수 이름, 전체 코드 스니펫을 실시간으로 자동 완성하는 권장 사항을 제공한다. 예를 들어 개발자가 “for i in…”이라고 입력하면 어시스턴트가 “for i in range(10):”을 제안하여 for 루프 구문을 완성할 수 있다.

이는 일반적인 자동 완성 기능이 아니라 사용자와 함께 코딩하는 AI가 컨텍스트를 따라 (희망적으로) 올바른 제안을 하는 것이다.

코드 자동 완성 외에도 일부 프로그램은 개발자가 일반 언어 주석으로 로직을 설명하면 전체 함수 정의 또는 클래스를 생성할 수도 있다. 예를 들어, 딜로이트의 한 프로젝트 관리자는 AI 코딩 프로그램 사용하여 30일 이내에 앱을 처음부터 구축하고 출시한 방법을 공유했다.

AI 프로그래밍 도구의 다른 유용한 기능으로는 오류 감지, 주석 및 README를 통한 문서화 지원, 코드 사용 설명 또는 예제 등이 있다.

AI 코딩 프로그램, 속도를 제공하지만 양질의 코드를 보장할까?

555vCTO의 창립자 바츨라프 빈칼렉은 이메일을 통해 AI 코딩 프로그램을 도입하는 주요 동기 중 하나는 소프트웨어 개발 속도를 높이고 개발자의 일상적인 업무를 줄이기 위해서라고 Techopedia에 말했다.

그러나 아이세라제품 관리 및 마케팅 담당 부사장인 카틱 에스제이는 소프트웨어의 품질이 저하되어 개발자와 사용자 모두에게 부정적인 결과를 초래할 수 있다고 주장합니다.

그가 말하길:

“품질 측면에서 기본 LLM은 완벽하지 않으며 경우에 따라 결과를 예측할 수 없는 경우도 있다. 그렇기 때문에 개발자는 항상 생성된 코드를 검토해야 한다.”

깃클리어의 보고서에 따르면, AI 도구는 개발자가 코드를 더 빠르게 작성하는 데 도움이 되지만 “애초에 작성해서는 안 되는 잘못된 코드”를 설명하지는 못한다.

이 보고서는 코드 생성 속도만이 중요한 요소가 아니라 코드의 품질과 필요성도 중요하다고 주장한다. 단순히 더 많은 코드를 더 빨리 작성한다고 해서 품질이 낮거나 불필요한 코드인 경우 기술 부채, 유지 관리 문제, 복잡성을 초래할 수 있다.

AI 버스터의 창립자이자 CIO인 나즈물 하산은 깃클리어의 의견에 동의하며, 품질이 낮은 코드는 향후 코드를 이해하고 업데이트하려는 독자와 유지 관리자에게 상당한 고통과 속도 저하를 초래할 수 있다고 덧붙인다.

그는 테크피디아와의 채팅에서 다음과 같이 설명했다: “AI 코딩 프로그램을 워크플로에 통합한 결과 코드 유지 관리와 가독성에 여러 가지 영향을 미쳤다.”

“이러한 어시스턴트는 코딩을 간소화하고 표준을 유지하는 데 도움이 되지만, AI가 생성한 코드가 프로젝트의 특정 지침에 맞지 않거나 팀원들이 쉽게 이해하지 못할 위험이 항상 존재한다.

이로 인해 불일치가 발생하고 기술 부채가 발생하는 경우를 본 적이 있다. 효율성을 위해 AI를 활용하는 것과 동시에 코드가 깔끔하고 잘 문서화되어 있으며 아키텍처 원칙과 일관성을 유지하는 것도 중요하다는 것을 깨달았다.”

AI 코딩 프로그램: 소프트웨어 취약점 해결 방법

생성형 AI 보안이 여전히 전 세계적으로 우려의 대상이 되고 있는 상황에서 AI 코딩 프로그램에 대한 의존도가 높아지는 것은 당연한 일이다.

코넬대학교 연구팀이 프로그래머의 AI 코딩 프로그램 사용 방식을 조사한 최근 연구에서는 보안 취약성과 관련하여 문제가 되는 트렌드를 발견했다. 연구진은 AI 코딩 도구에 액세스할 수 있는 개발자가 그렇지 않은 개발자에 비해 훨씬 덜 안전한 코드를 작성한다는 사실을 발견했다.

또한 프로그래머는 더 많은 취약점이 포함되어 있어도 AI 지원 코드가 안전하다고 믿을 가능성이 더 높았다.

이 연구는 또한 AI 프로그래밍 도구를 덜 신뢰하고 프롬프트를 더 신중하게 사용자 지정한 사용자가 보안 문제를 더 적게 발생시키는 것으로 나타났다.

연구진은 AI 코딩 도구가 효율성을 높일 수 있지만, 보안에 민감한 애플리케이션의 경우 과신을 조장하고 코드 품질을 떨어뜨릴 수 있다는 사실을 발견했다.

생성되는 코드의 안전과 보안에 대한 이러한 중대한 도전과 위험을 고려할 때, 우리는 AI 코딩 프로그램에 코드를 맡길 수 있는 수준에 도달했을까?

하산은 코드의 유형, 복잡성, 도메인, AI 코딩 프로그램 품질과 신뢰성, 사람의 감독 및 검증 수준 등 여러 요인에 따라 달라지기 때문에 그 답은 간단하지 않다고 말한다.

NCC 그룹의 수석 보안 컨설턴트인 데이비드 브라우클러는 테크피디아와의 이메일 채팅에서 안전이 흥미로운 관점이라고 지적했다.

“또한 이러한 시스템은 좋은 코드를 생성하도록 훈련된 것이 아니라는 점도 고려해야 한다. 결함, 가정, 취약점 등 인간과 비슷한 코드를 생성하도록 훈련받았기 때문이다.

그리고 이러한 모델이 더 많은 데이터를 소비함에 따라 사람들이 코드를 작성할 때 저지르는 실수의 종류를 더 많이 추론하여 탐지하기 어려운 문제를 일으킬 가능성이 매우 높다.”

개발자가 AI 코딩 프로그램: 사용하면서 위험을 최소화하는 방법

AI 코딩 프로그램 등장은 소프트웨어 팀에게 딜레마를 안겨준다. AI 코딩 프로그램을 사용하다가 품질이 낮은 코드를 만들거나, 완전히 포기하여 제품 출시 시기를 늦출 수도 있다.

하지만 위험을 최소화하면서 이점을 얻을 수 있는 세 번째 옵션이 있을 수 있다.

이에 대해 Sj는 개발자가 교육 과정에서 AI 프롬프트 기술을 향상시키고 도구를 사용할 용도에 대한 명확한 가이드라인을 설정할 필요가 있다고 조언한다.

소나소스의 개발자 관계 책임자인 피터 맥키는 개발자가 코드 스캔 도구를 개발 과정에 도입하여 잠재적인 GenAI 코딩 오류를 완화할 필요가 있다고 제안한다.

그는 테크피디아에 이렇게 말했다:

“CI/CD 프로세스에 코드 스캔을 도입하면 AI가 생성한 코드에서 오류와 문제를 지속적으로 모니터링하는 데 도움이 될 수 있다.

이를 통해 개발자는 중요한 프로젝트 문제에 계속 집중하고, 버그에 대한 인사이트를 얻고, 더 빠르게 수정할 수 있다.”

또한 개발자가 코드를 프로덕션에 적용하기 전에 보안 취약점을 파악하는 데 도움이 될 수 있는 정적 애플리케이션 테스트(SAST)를 통해 GenAI가 개발한 코드의 취약점을 탐지할 것을 권장한다.

결론

AI 코딩 프로그램은 소프트웨어 개발 속도를 높이고 개발자의 생산성을 향상시킬 수 있는 강력한 도구이다.

하지만 만병통치약은 아니며, 열등하거나 안전하지 않은 코드를 생성하고 개발자의 기술과 창의성을 제한하며 윤리적 및 법적 문제를 일으킬 수 있다.

따라서 개발자는 AI 코딩 프로그램을 맹목적으로 의존하지 말고 신중하고 신중하게 사용해야 한다.

또한 개발자는 AI 코딩 프로그램이 생성한 코드를 확인, 검토 및 테스트하고 해당 코드가 사용되는 프로그래밍 언어 및 업계의 요구사항과 표준을 충족하는지 확인해야 한다.

Ruholamin Haqshanas
Cryptocurrency journalist
Ruholamin Haqshanas
가상화폐 저널리스트

루홀라민 하크샤나스는 이 분야에서 3년 이상의 경력을 쌓은 가상화폐 및 금융 전문 저널리스트입니다. 그는 메카트로닉스 학사 학위를 받았으며 핀테크 분야에 큰 관심을 가지고 있습니다. 프리랜서 기술 작가로 시작했지만 2019년에 가상화폐 업계에 발을 들여놓은 후 가상화폐로 전향했습니다. 루홀라민은 여러 금융 및 가상화폐 관련 뉴스 매체 및 가상화폐 뉴스 매체에 소개된 바 있으며, 여기에는 CryptoNews, Investing.com, 24/7 월스트리트, 토큰이스트, 비즈니스2커뮤니티, 자이크립토, 이더리움프라이스닷컴, 밀크로드 등이 포함됩니다. 또한 마이다스 인베스트먼트, 불퍼크스/게임패드, 이퀄라이저 파이낸스 등 주요 가상화폐 및 탈중앙 금융 프로젝트에서 콘텐츠 크리에이터로 일했습니다.