AI 코딩 의존, 코드 유지보수성과 개발자 숙련 해친다

AI 코딩에 대한 의존이 소프트웨어 유지보수성을 해치고 개발자의 숙련을 막을 수 있다는 주장이 나왔다. 해외 기술 블로그에 9월 22일 게재된 분석 글은 AI에 코드 작성과 읽기까지 의존하는 개발 관행이 장기적으로 문제를 키울 수 있다고 지적했다.

AI 코딩의 장기 유지보수성 문제

분석 이른바 ‘바이브 코딩’으로 만든 프로젝트가 시간이 지나면서 유지보수하기 어려운 코드로 변할 수 있다고 주장했다. 나쁜 코드는 읽고 이해하기 어렵고, 한 부분을 바꿨을 때 멀리 떨어진 다른 기능이 예측하기 힘든 방식으로 망가지는 특성을 보인다. 새 기능을 추가하려면 여러 곳을 수정해야 하고 일부 변경을 빠뜨려 코드 사이에 불일치가 생길 수도 있다.

이런 문제는 즉시 드러나지 않고 수개월 또는 수년 뒤에 나타나는 경우가 많아 측정하기 어렵다는 설명이다. 설계의 불변 조건이 분명하지 않거나 작성자가 더 이상 곁에 없어 이를 지키고 일관성을 유지할 사람이 없는 상황, 구현 세부사항에 의존하는 취약한 테스트도 유지보수를 어렵게 하는 요인으로 제시됐다. 숙련된 개발자는 과거의 디버깅과 장애 대응 경험을 바탕으로 이런 ‘코드 냄새’를 조기에 감지하지만, 그 판단은 상황에 따라 달라져 고정된 규칙으로 만들기 어렵다고 분석했다.

AI 의존과 개발자 숙련의 관계

AI 모델은 코드 유지보수성을 몇 달 또는 몇 년 뒤까지 평가하는 보상 신호를 학습하기 어렵다는 지적도 나왔다. AI는 초보자용 규칙과 공개된 코드에서 패턴을 익히는데, 실제 공개 코드 상당수가 품질이 낮아 이를 그대로 학습할 위험이 있다는 것이다. 유지보수 가능한 코드를 판별하는 명확한 기준이 있다면 린터 같은 개발 도구에 이미 반영됐을 것이라는 설명도 덧붙였다.

특히 최신 AI 모델조차 코드 단순화 과정에서 큰 함수를 재사용성이 낮은 작은 함수 여러 개로 나누는 경우가 있다고 주장했다. 작은 함수를 별도로 읽어야 전체 함수의 동작을 이해할 수 있다면 오히려 코드가 복잡해질 수 있으며, 명확하고 재사용 가능한 함수를 설계하는 일은 숙련이 필요한 작업이라는 설명이다. 분석 개발자가 코드를 직접 읽고 선택하며 실수에서 배워야 하지만, AI에 작성과 검토를 모두 맡기면 책임과 학습 기회가 함께 줄어들 수 있다고 우려했다.

작성자는 LLM이 반복적이고 소모적인 업무를 줄이는 유용한 도구라는 점은 인정했다. 다만 AI를 도구로 활용하는 것과 개발 판단을 전적으로 맡기는 것은 다르다며, 앞으로 일부 기업이 경쟁력의 하나로 ‘AI를 사용하지 않는 정책’을 내세울 수 있다고 전망했다. 소프트웨어 산업은 원래 자동화를 대규모로 수행해온 분야인 만큼, LLM이 모든 개발 문제를 해결하는 유일한 자동화 수단은 아니며 상황에 따라 주의를 분산시키는 요소가 될 수 있다는 주장이다.

원문에는 특정 제품의 출시 일정이나 가격, 기업별 도입 계획은 제시되지 않았다. 대신 기업과 개발자가 AI 사용에 책임을 지지 않으면 장기적인 코드 품질과 개발 역량에 부정적 결과가 생길 수 있다며, AI를 활용하더라도 사람이 코드의 선택과 결과에 계속 책임져야 한다고 강조했다.

RELATED ARTICLES