AI가 코드와 개발자를 오염시킨다?

2025-02-25

생성형 인공지능(AI) 기반의 코드 어시스턴트 이용이 급증하고 있다. 개발자의 생산성을 높여준다는 긍정적 평가와 함께 개발자 역량과 코드 품질에 부정적 영향을 준다는 평가가 공존한다.

스택오버플로우의 2024년 개발자 설문조사 결과 전문 개발자의 63%가 개발 작업에 AI를 사용중이고, 14%는 곧 AI를 사용할 계획이라고 한다. AI 사용하는 개발자는 생산성 증가를 최고 이점으로 꼽았다. AI를 활용해 더 많은 코드를 더 빠르게 작성할 수 있게 됐다는 것이다.

개발자가 AI 코드 어시스턴트에 갖는 인식은 양가적이다. 더 많은 코드를 빠르게 생성하는 건 맞는데, 과연 코드 품질까지 뛰어난지는 불확실하다는 평가다. 또 코드 생산성이 비약적으로 늘어나 개발자의 일자리를 위협한다는 불안감도 갖는다.

깃클리어의 최근 보고서에 따르면, AI 코딩 어시스턴트가 중복 및 복사붙여넣기 코드를 늘려 코드 품질을 떨어뜨리는 것으로 나타났다. 깃클리어는 지난해 보고서에서 AI 코드 어시스턴트 활용으로 코드의 결함률이 증가할 것으로 예측했었다. 이 회사측은 지난해 전망보다 더 빠르게 결함률 증가를 보였다고 올해 보고서에서 밝혔다.

깃클리어는 2020년부터 2024년까지 마이크로소프트, 구글, 메타 등에서 소유한 저장소 내 코드 2억1100만줄을 분석해 추가, 삭제, 이동, 업데이트 등 코드 변경의 지표를 살폈다. 연구는 AI 어시스턴트가 작성하는 코드 유형에 어떤 영향을 미치는지 알아보는 데 초점을 맞췄다.

연구 결과 중복된 코드가 급증하고, 코드 재사용이 감소했다. 코드 커밋에서 복사/붙여넣기된 줄의 빈도가 2024년 예측보다 6% 더 빠르게 증가했다. 중복된 코드를 커밋한 비율도 빠르게 증가했다.

2024년 5개 이상의 중복된 줄이 있는 코드 블록의 빈도가 전년보다 8배 증가했다. 과도한 코드 중복은 코드 품질의 저하를 보여주는 주요 신호다. 동일 코드가 한 곳에서 업데이트 돼도 다른 곳에서 업데이트되지 않을 때 결함 위험이 높아지기 때문이다.

코드 복제는 전반적인 줄 수를 늘리고, 시스템 버그를 유발하며, 차후 유지관리 복잡성을 증가시킬 수 있다.

연구진은 이동된 줄의 수가 전년보다 39.9% 감소했다고 밝혔다. 코드 이동은 리팩토링의 증거로, 이는 기능을 변경하지 않고 품질을 개선하는 사업이다. 깃클리어는 이전 작업을 재사용 가능한 모듈로 통합하는 능력이 인간 개발자가 AI 어시스턴트보다 나은 능력이라고 설명했다.

연구진은 “복사 붙여넣기 줄의 수가 이동 줄의 수를 초과한 첫 해였다”며 “이동된 줄은 리팩토링 활동을 강력히 시사하며, 현재 추세가 계속되면 개발자의 일에너지가 새로운 기능을 개발하는 데 사용되는 대신 앞으로 몇년 안에 결함 수정이 개발자의 일상적 주요 책임으로 여겨질 수 있다”고 밝혔다.

깃클리어는 AI 어시스턴트에서 탭만 누르면 새로운 코드 블록을 추가하게 해주는 반면, 다른 곳에서 코드를 재사용할 것을 제안할 가능성이 낮다고 지적했다.

작년 구글의 DORA 데브옵스 상태 설문조사 보고서는 약간 대조적이면서도 비슷한 결과를 내놨다. 구글의 연구진은 AI 코딩 어시스턴트 사용으로 코드 품질이 3.4% 향상됐다고 주장하는 한편 딜리버리 안정성이 7.2% 감소했다고 추정했다. 구글 연구진은 개별 코드 블록 수준에서 AI 어시스턴트가 코드 품질을 향상시킬 수 있지만, AI로 더 많은 코드를 생산하게 되면 차후에 더 많은 변경을 하게 될 수 있다고 분석했다. 연구진은 더 큰 변경은 더 느리고, 불안정성을 일으킬 수 있다고 봤다.

구글의 데브옵스 보고서는 또한 개발자가 현존하는 AI 어시스턴트를 그다지 신뢰하지 않는다는 것도 증명했다. 조사 결과 중견급 개발자들은 AI 어시스턴트를 ‘어느정도’ 신뢰한다고 답했다.

깃클리어는 “더욱 강력한 AI의 끝없는 출시는 2025년에도 개발자 생태계를 계속 변화시킬 것”이라며 “변화가 끊임없이 일어나는 환경에서 개발자는 여전히 인간만 가진, 코드를 이해해 단순화하고 통합하는 능력을 강조해야 한다”고 제안했다.

이런 가운데 지난 14일 한 중견급 개발자가 AI 코드어시스턴트에 익수한 신입 개발자의 프로그래밍 역량을 평가절하한 블로그를 올렸다. 해당 블로그는 100만뷰를 돌파했으며 해커뉴스에서 100개 이상의 답글을 받았을 정도로 화제를 모았다.

자신을 12년 이상의 경력을 가진 개발자고, AI 기반 개발도구를 만든다고 소개한 나마냐이 고엘은 “우리는 소프트웨어 개발에서 이상한 변곡점에 있다”며 “내가 만난 모든 주니어 개발자는 코파일럿, 클로드, GPT를 24시간 내내 실행하고 그 어느때보다 빠르게 코드를 생산하지만 그들의 것을 깊이 파고들면 걱정된다”고 적었다.

주니어 개발자에게 그들의 코드를 어떤 방식으로 작동하게 만들었는지 물어보면 답을 못한다는 혹평이었다.

그는 “문제를 헤쳐나가면서 얻게 되는 기본적 지식이 이제 아예 없어졌다”며 “우리는 깊은 이해를 빠른 해결책으로 바꾸고 있고, 당장은 기분좋지만 나중에 그 대가를 치르게 될 것”이라고 주장했다.

그는 과거 스택오버플로우에 질문을 올리고 경험많은 다른 개발자로부터 풍부한 설명을 들으며 학습하면서 얻는 게 더 많았다고 설명했다. 그는 “AI는 답을 주지만, 얻는 지식은 얕다”며 “스택오버플로우에선 전체적인 그림을 얻기 위해 여러 전문가 토론을 읽어햐 하고, 더 느리지만 무엇이 효과있었고 왜 효과 있었는지도 이해하게 됐다”고 밝혔다.

그는 “모든 훌륭한 개발자는 솔루션 복사로 훌륭해진 게 아니라 시스템을 깊이 이해하고 다른 개발자의 사고 과정을 이해함으로써 훌륭해졌다”며 “그것이 바로 우리가 잃고 있는 것”이라고 강조했다.

그는 1월 올린 블로그에서도 비슷한 주장을 했었다. 그는 1월 24일 작성한 블로그에서 ‘AI는 문맹 프로그래머 세대를 만들고 있다’고 주장했다.

챗GPT와 코드 어시스턴트 ‘커서’의 장애를 겪으며 자신의 기술이 더 나빠졌다는 생각을 하게 됐다는 내용이다. AI를 사용하게 되면서 문서 읽는 것을 멈췄고 디버깅 기술이 타격을 입었으며, 코드와 LLM 사이의 단순한 중재자가 됐다고 밝혔다. 버그와 오류 메시지를 분석하면서 얻게 되는 깊이있는 이해를 상실했다는 것이다.

그는 “우리는 AI로 10배 더 뛰어난 개발자가 될 수 없고, 우리는 AI에 10배 더 의존하고 있다”며 “우리는 스스로 해결할 수 있는 문제를 AI에게 맡겨 내버려 둘 때마다 장기적 이해를 단기적 생산성으로 바꾸고 있다”고 지적했다. 이어 “내일의 능력을 희생하고 오늘의 커밋을 최적화하고 있다”며 “지금 어딘가에서 새로운 프로그래머가 코딩을 배우고 있을 텐데, 그들은 진정으로 스스로 문제를 해결하는 만족감을 결코 얻지 못할 것”이라고 강조했다.

그는 “우리는 AI에게 올바른 질문을 할 수 있지만, 답을 이해할 수 있는 개발자 세대를 만들고 있다”며 “AI가 다운될 때마다 그들은 점점 더 무력하다는 것을 드러낸다”고 덧붙였다.

그의 의견은 상반된 반응을 이끌어냈다. 초보 개발자가 AI에 의존해 코드의 작동을 이해하지 못하면 장기적으로 실패할 것이란 우려가 많았다. 반면 노년 세대가 청년 세대의 게으름을 탓하는 오랜 반복의 최신 버전이란 비아냥도 많았다.

다만, 현재 개발자 일자리 시장에서 AI 코딩 어시스턴트의 확산은 암묵적인 영향을 미치고 있다. 국내 스타트업의 한 중견 개발자는 “AI 코딩 어시스턴트 때문에 초급 개발자를 여러명 채용하기보다 중견급 개발자 한 명에게 AI 생성 코드를 검토하게 하는 게 낫다는 생각을 한다”며 “막 개발자를 시작한 초급 인력이 경험을 쌓을 기회가 줄어들고 있다”고 말했다.

한 개발자 커뮤니티 활동가는 “개발자의 역할이 단순히 코드를 작성하는 것에서 소프트웨어의 구조를 이해하고 작동하게 하는 아키텍처 조율로 바뀌는 듯하다”며 “당장 AI 코딩 어시스턴트를 사용해 코더로서 역할을 수행한다고 해도 프로그래밍과 소프트웨어 지식을 부지런히 공부하지 않으면 언젠가 경쟁에서 뒤처진다는 걸 명심해야 한다”고 조언했다.

글. 바이라인네트워크

<김우용 기자>yong2@byline.network

Menu

Kollo 를 통해 내 지역 속보, 범죄 뉴스, 비즈니스 뉴스, 스포츠 업데이트 및 한국 헤드라인을 휴대폰으로 직접 확인할 수 있습니다.