AI 코딩 툴, 생산성 높이지만 오류도 1.7배 더 많아…코드래빗 보고서
컨텐츠 정보
- 조회 366
본문
AI 코드 생성 기술이 소프트웨어 개발을 완전히 지배하기까지는 아직 해결해야 할 과제가 적지 않다는 분석이 나왔다. 코드 리뷰 툴 개발 업체 코드래빗(CodeRabbit)이 발표한 새로운 보고서에 따르면, AI가 생성한 코드는 사람이 작성한 코드보다 풀 리퀘스트 분석 과정에서 1.7배 더 많은 문제를 발생시켰다.
AI 코딩 어시스턴트는 이미 소프트웨어 개발 워크플로우에서 표준 도구로 자리 잡았지만, 개발자 사이에서는 이에 대한 우려도 제기되고 있다고 보고서 집필팀은 전했다. 코드래빗 분석에 따르면 AI가 생성한 코드가 포함된 풀 리퀘스트에서는 풀 리퀘스트 하나당 평균 10.83개의 이슈가 발견된 반면, 사람이 작성한 코드가 포함된 풀 리퀘스트에서는 평균 6.45개의 이슈가 확인됐다. AI의 도움을 받아 작성된 코드가 포함된 풀 리퀘스트에서도 이슈가 급증하는 현상이 나타났다.
코드래빗은 단순한 평균 수치보다 분포가 더 중요한 포인트라고 설명했다. AI가 생성한 코드가 포함된 풀 리퀘스트는 분포의 꼬리가 훨씬 두꺼운 형태를 보였는데, 이는 검토해야 할 문제가 유난히 많은 ‘과도하게 복잡한 리뷰’가 훨씬 더 자주 발생한다는 의미다. 또한 AI가 관여한 코드의 풀 리퀘스트는 여러 측면에서 검토 난이도도 더 높았다. 보고서는 AI 코딩 도구를 도입하는 팀이라면 풀 리퀘스트 이슈의 변동성이 커지고, 보다 깊은 검토를 요구하는 이슈 급증 상황이 더 자주 발생할 수 있음을 예상해야 한다고 분석했다.
전반적으로 보면, AI가 생성한 코드가 포함된 풀 리퀘스트에서는 로직과 정확성 관련 이슈가 가장 많이 발견됐다. 보고서는 정확성, 유지보수성, 보안, 성능 등 모든 주요 범주에서 AI의 도움을 받아 작성된 코드는 사람만 작성한 코드보다 일관되게 더 많은 문제를 만들어냈다고 분석했다.
이번 보고서에서 코드래빗은 오픈소스 깃허브 풀 리퀘스트 470건을 분석했다. 이 가운데 320건은 AI의 도움을 받아 작성된 코드가 포함된 풀 리퀘스트였으며, 150건은 사람만 작성한 코드가 포함된 것으로 추정됐다. 이번 분석 결과에 대해 코드래빗은 “명확하고 측정 가능하며, 많은 개발자가 직관적으로 느껴왔던 인식과도 일치한다. AI는 생산성을 가속하지만, 동시에 특정 유형의 실수도 증폭시킨다”라고 설명했다.
또한 보고서 집필팀은 AI의 도움을 받아 작성된 코드가 포함된 풀 리퀘스트에서 보안 관련 이슈가 지속적으로 증가하고 있다는 점을 확인했다. 지적된 취약점이 AI 코드에서만 새롭게 나타난 유형은 아니었지만, 사람만 작성한 코드보다 훨씬 더 자주 발견되면서 AI를 활용한 개발 전반의 위험도를 높이고 있는 것으로 분석됐다. 보고서 집필팀은 AI가 위험한 보안 실수를 만들어낼 수 있는 만큼, 개발팀이 이러한 문제를 더 효과적으로 식별하고 사전에 걸러낼 수 있는 역량을 강화해야 한다고 조언했다.
다만 이번 보고서에서는 AI 사용의 장점도 일부 확인됐다. 맞춤법 오류는 사람만 작성한 코드에서 거의 2배 가까이 더 자주 나타났다. 사람이 작성한 코드에서는 평균 18.92건의 맞춤법 오류가 발견된 반면, AI가 생성한 코드에서는 10.77건에 그쳤다. 보고서 집필팀은 이에 대해 사람이 인라인 설명이나 주석과 같은 문장을 훨씬 더 많이 작성하기 때문일 수도 있고, 단순히 개발자가 맞춤법에 약하기 때문일 수도 있다고 분석했다. 테스트 용이성과 관련된 문제 역시 사람만 작성한 코드에서 더 자주 발생했다. 사람이 작성한 코드에서는 평균 23.65건의 이슈가 발견된 반면, AI가 생성한 코드에서는 17.85건으로 나타났다.
그럼에도 불구하고 전체적인 분석 결과는 AI가 생성한 코드가 워크플로우의 표준 요소로 자리 잡을수록 명확한 가드레일이 필요하다는 점을 보여준다. 코드래빗은 프로젝트별 맥락을 사전에 제공해 모델이 불변 조건, 설정 패턴, 아키텍처 규칙과 같은 제약 요소에 접근할 수 있도록 해야 한다고 설명했다. 가독성, 포맷, 네이밍과 관련된 문제를 줄이기 위해서는 엄격한 CI 규칙을 적용할 필요가 있다. 정확성 확보를 위해서는 단순하지 않은 제어 흐름을 포함한 코드에 대해 병합 전 테스트를 의무화해야 한다고 조언했다. 또한 보안 기본값을 코드로 명확히 정의하고, 관용적인 데이터 구조 사용과 배치 I/O, 페이지네이션을 장려하는 것도 중요하다. I/O 부하가 크거나 리소스에 민감한 경로에 대해서는 스모크 테스트를 수행해야 하며, AI 활용을 고려한 풀 리퀘스트 체크리스트를 도입하고 서드파티 코드 리뷰 도구를 함께 사용하는 것이 바람직하다.
이외 보고서에서 확인할 수 있는 주요 조사 결과는 다음과 같다.
- AI가 관여할수록 이슈의 심각도가 높아지며, 치명적이거나 중대한 문제가 더 많이 발생했다.
- AI가 생성한 코드는 네이밍 불일치를 거의 2배 가까이 더 많이 만들어냈다. 불명확한 이름, 용어 불일치, 지나치게 일반적인 식별자가 빈번하게 나타났다.
- AI가 생성한 코드는 겉보기에는 올바르게 보이지만, 실제로는 프로젝트 내부의 관용적인 표현이나 구조를 위반하는 경우가 많았다.
- AI가 생성한 코드는 실제 서비스 장애와 연관된 문제를 만들어내는 경우가 자주 확인됐다.
- 성능 저하는 전반적으로 드물었지만, 발생한 성능 문제는 AI가 관여한 코드에서 불균형적으로 많이 나타났다.
- 코드 순서 오류, 의존성 흐름의 결함, 동시성 프리미티브 오용은 AI가 생성한 코드가 포함된 풀 리퀘스트에서 훨씬 더 자주 발견됐다.
- 포맷팅 문제는 AI가 생성한 코드가 포함된 풀 리퀘스트에서 2.66배 더 많이 발생했다.
dl-itworldkorea@foundryco.com
관련자료
-
링크
-
이전
-
다음






