LLM 생성 코드가 포함된 의존성 없이 빌드 가능하도록
AI가 짜준 코드를 복사해 붙여넣고 빠르게 기능을 구현하는 일은 이제 개발자의 일상이 됐다. 코드 한 줄을 짜기 위해 수십 번의 프롬프트를 입력하는 효율성 뒤에는 검증되지 않은 로직이 숨어들 위험이 있다. 내가 제어할 수 없는 외부 라이브러리에 AI 생성 코드가 섞여 들어오면 유지보수 리스크는 예측 불가능해진다. git-annex(분산 파일 관리 도구)는 LLM(대규모 언어 모델) 생성 코드가 포함된 의존성 없이 빌드 가능하도록 시스템을 조정했다.
개발자는 지난 한 달 동안 약 100시간의 작업을 투입했다. git-annex가 LLM 생성 코드를 포함하는 의존성 없이 빌드될 수 있도록 조치하기 위해서다. AI가 생성한 코드가 라이브러리 형태로 스며드는 것을 막기 위한 물리적 제거 작업이다. 개발자가 직접 코드를 검토하고 의존성을 재구성하는 비용을 감수하며 코드의 순수성을 확보하려는 조치다.
소프트웨어 자유 보존 연맹(Software Freedom Conservancy)과 자유 소프트웨어 재단(FSF)의 대응 방식에는 회의적인 시각이 제기됐다. 작성자는 LLM 코드의 유입을 막으려 노력하고 있으나 Software Freedom Conservancy는 이 문제를 회피했다. FSF 역시 이보다 더 나은 대응책을 내놓지 못할 것이라는 의구심이 나온다. AI 생성 코드가 오픈소스 생태계에 유입되는 흐름을 막는 일에 대해 기존 기구들의 실행력이 부족하다는 지적이다.
기술이 실제로 작동하는 방식
AI로 생산성을 높였다고 믿는 순간 동료를 잃을 수 있다. 한 개발자가 LLM 프롬프트에 'fourmolu 설정 추가 및 리스타일링'을 입력했다. fourmolu는 파이썬 코드의 형식을 일관되게 맞춰주는 포맷터다. 개발자는 LLM이 생성한 결과물을 그대로 커밋하며 스스로를 10배의 효율을 내는 개발자라고 지칭했다. 하지만 이러한 무분별한 커밋 방식은 결과적으로 해당 프로젝트에서 작성자의 협업을 끊어지게 만들었다. 단순한 코드 수정과 설정 추가가 신뢰 붕괴와 협업 중단이라는 실질적 손실로 이어진 사례다.
작성자는 LLM 생성 코드가 포함된 의존성을 제거하는 과정에서 라이브러리의 품질 정보를 추가로 확보했다. 작성자는 이를 이번 정제 작업에서 얻은 유일한 긍정적 이점이라고 명시했다. 의존성 라이브러리들이 실제로 어떤 품질 수준을 가지고 있는지에 대한 구체적인 데이터를 얻었다. 이 정보는 향후 어떤 라이브러리를 채택하고 유지할지에 대한 결정에 영향을 미칠 예정이다. AI가 생성한 코드를 의존성 라이브러리에 무분별하게 포함할 때 발생하는 유지보수 비용과 리스크를 판단하는 기준이 마련된 셈이다.
확인해야 할 핵심 지점
동일한 기능을 구현하는 데 걸리는 시간이 며칠에서 몇 초로 단축됐다. 하지만 이 속도는 의존성 라이브러리 내부에 심각한 기술 부채를 빠르게 쌓는다. 26,000 LOC(Lines of Code, 코드의 총 줄 수) 규모의 코드베이스에서 10,000줄의 변경 사항이 한꺼번에 포함된 커밋이 발견됐다. 해당 커밋의 메시지는 1,489줄에 달할 정도로 방대했지만 정작 내용은 일관성이 없었다. 별다른 설명조차 없이 다음 릴리스에서 즉시 되돌려진 대규모 LLM 변경 사항 등 심각한 수준의 저품질 사례들도 확인됐다. 무분별한 코드 생성은 인간이 검토할 수 있는 임계치를 넘는 변경량을 만들어내며 관리 효율을 급격히 떨어뜨린다.
의존성 검토 과정에서는 타 프로젝트의 코드를 그대로 복사하도록 유도하는 LLM 프롬프트가 발견됐다. 프롬프트(Prompt, AI에게 내리는 지시어)가 지시한 대로 외부 코드를 가져왔음에도 저작권 침해로 이어지지 않은 것은 단순히 운이 좋았기 때문이라고 언급됐다. AI가 제안하는 코드가 외부 저작권을 침해하는 직접적인 경로가 된 사례다. 개발자는 AI 생성 코드를 의존성 라이브러리에 포함할 때 유지보수 비용과 저작권 침해 가능성이라는 리스크를 명확한 판단 기준으로 삼아야 한다.
GitHub Copilot으로 코드를 자동 생성하는 일은 이제 개발자의 일상이다. git-annex 개발자는 26,000줄의 코드베이스에서 10,000줄의 LLM 생성 코드를 제거하며 경고를 보냈다. 생성 속도가 빨라졌다고 해서 유지보수 비용까지 사라지지는 않는다.
의존성 라이브러리를 검토할 때 유지보수 비용과 저작권 리스크를 필터로 적용해 보길 권한다. AI가 주는 속도보다 코드의 지속 가능성이 프로젝트의 생존을 결정한다.




