JIINSI
기술 트렌드

'작동해도 에이아이 코드 거부'... 개발자들, 에이아이 생성 코드의 현실적 한계 직면

정우석글 · 정우석
에이아이와 인간 개발자가 협업하는 모습 - 코드 검토의 중요성을 시사한다.
에이아이와 인간 개발자가 협업하는 모습 - 코드 검토의 중요성을 시사한다.
최근 브라질의 소프트웨어 개발자 비니 브라질(Vini Brasil)이 작성한 '작동해도 AI 코드를 거부하는 이유'라는 블로그 게시물이 해커뉴스 등 개발자 커뮤니티를 강타하며 AI 시대의 개발론에 대한 뜨거운 논쟁을 촉발시켰다. 이 글은 단순히 AI 코드 생성 도구의 장단점을 나열하는 것을 넘어, 소프트웨어 엔지니어링의 본질과 전문가의 책무에 대한 근원적인 질문을 던지며 업계에 큰 파장을 일으키고 있다. 논쟁의 핵심은 AI가 생성한 코드가 기능적으로 올바르게 작동하더라도, 그것이 과연 프로젝트에 통합될 만큼 '좋은 코드'인가에 대한 회의론이다. GitHub 코파일럿(Copilot)과 같은 도구들이 OpenAI의 GPT 모델을 기반으로 경이로운 생산성 향상을 약속하는 이면에, 장기적인 유지보수 비용과 시스템의 안정성을 위협하는 '기술 부채'라는 그림자가 짙게 드리워지고 있다는 경고다. 이는 단순히 새로운 기술에 대한 낯섦이 아니라, 수십 년간 축적된 소프트웨어 공학의 교훈과 정면으로 충돌하는 지점이다. 비니 브라질이 지적한 AI 코드의 문제는 구체적이고 현실적이다. AI는 현재의 문제 해결에만 집중한 나머지, 프로젝트의 전체적인 아키텍처나 설계 철학을 고려하지 않은 단편적인 코드를 생성하기 일쑤다. 이는 마치 멋진 거실 인테리어 디자인을 요청하자 소파 앞에 수영장을 배치하는 AI처럼, 맥락을 이해하지 못해 발생하는 근본적인 한계와 맞닿아 있다. 이렇게 생성된 코드는 당장은 작동하는 것처럼 보이지만, 그 내부 논리가 복잡하게 엉켜있어 누구도 그 작동 원리를 완벽히 설명하지 못하는 '블랙박스'로 남게 된다. 결국 사소한 버그 수정이나 기능 변경조차 예측 불가능한 부작용을 낳는 시한폭탄이 되는 것이다. 업계의 한 시니어 엔지니어는 "소프트웨어의 진짜 비용은 초기 개발이 아닌, 수년간의 유지보수에서 발생한다"고 지적하며, AI 코드가 이 비용을 기하급수적으로 증가시킬 수 있음을 우려했다. AI가 생성한 코드의 문제점은 다음과 같이 요약할 수 있다.
  • 불투명한 논리 구조: 왜 작동하는지 알 수 없어 디버깅과 수정이 거의 불가능한 '블랙박스' 코드
  • 맥락의 부재: 프로젝트 전체 아키텍처나 기존 코드 스타일을 이해하지 못하고 단편적인 '정답'만 생성
  • 숨겨진 기술 부채: 당장의 기능 구현을 위해 장기적인 유지보수 비용을 폭발적으로 증가시키는 비효율적 코드
  • 소유권과 책임의 부재: 버그 발생 시 해당 코드의 수정과 개선을 책임질 주체가 불분명함
물론 AI 코드 생성 기술이 빠르게 발전하여 이러한 문제들을 해결할 것이라는 낙관론도 존재한다. AI가 더 넓은 맥락을 학습하고, 코드의 품질과 일관성을 유지하는 방향으로 진화할 것이라는 기대다. 하지만 이는 문제의 핵심을 비껴간 시각일 수 있다. 현재의 논쟁은 AI의 기술적 성능에 대한 것이라기보다는, 소프트웨어 개발의 철학에 관한 문제이기 때문이다. 코드는 기계를 위한 명령인 동시에, 동료 개발자와 미래의 나를 위한 소통의 수단이다. 좋은 코드는 명확한 의도를 담고 있으며, 쉽게 읽히고, 안전하게 수정될 수 있어야 한다. AI가 통계적 패턴을 기반으로 '그럴듯한' 코드를 생성하는 것과, 인간 개발자가 깊은 고민을 통해 '의도를 담은' 코드를 설계하는 것은 근본적으로 다르다. 이 논쟁은 AI 시대에 인간 개발자의 역할이 코드를 '작성'하는 행위에서 시스템을 '설계'하고, 코드의 품질을 '보증'하며, 기술적 결정을 '책임'지는 역할로 이동해야 함을 명확히 보여준다. 결국 AI는 강력한 조수일 뿐, 프로젝트의 최종 책임자는 인간이라는 사실을 다시 한번 일깨우는 것이다.
인사이트

AI 생성 코드를 둘러싼 논쟁의 핵심은 '작동 여부'가 아닌 '품질과 지속가능성'이며, 이는 AI 시대에 개발자의 역할이 코드 작성자에서 시스템 설계자 및 품질 책임자로 진화해야 함을 시사한다.

자주 묻는 질문

요즘 다들 AI로 코딩한다는데, 그럼 깃허브 코파일럿 같은 거 아예 쓰지 말라는 건가요?
그런 의미는 아닙니다. 핵심은 AI를 생각 없는 대체재가 아닌, 똑똑한 조수로 활용하는 것입니다. 반복적인 코드나 간단한 함수 초안 작성에 활용하되, 생성된 모든 코드는 반드시 비판적으로 검토하고 이해한 뒤 프로젝트에 반영해야 합니다. 코드의 최종 품질 책임은 언제나 사람에게 있습니다.
이것도 그냥 새로운 기술에 대한 막연한 두려움 아닌가요? 옛날 개발자들이 새 기술 나올 때마다 반대했던 것처럼요.
기술 변화에 대한 저항감과 혼동해서는 안 됩니다. 이번 논쟁은 단순히 새 기술을 거부하는 것이 아니라, 소프트웨어의 장기적인 품질과 유지보수성이라는 공학적 표준에 관한 것입니다. 이는 수많은 프로젝트 실패를 통해 얻은 '경험 많은' 개발자들의 현실적인 우려이며, 기술 채택 여부가 아닌 '어떻게 책임감 있게 사용할 것인가'에 대한 논의입니다.
AI가 만든 코드가 왜 작동하는지 몰라도, 잘 돌아가면 그냥 쓰는 게 효율적이지 않나요? 어차피 라이브러리 쓸 때도 내부까지 다 뜯어보진 않잖아요.
둘은 근본적으로 다릅니다. 잘 만들어진 라이브러리는 명확한 사용법(API)과 문서가 있고, 버그 수정과 업데이트를 책임지는 커뮤니티나 회사가 존재합니다. 반면 AI가 즉석에서 생성한 코드는 소유자도, 문서도, 책임도 없는 '일회성 파편'으로, 프로젝트 내부에 숨겨진 기술 부채가 될 가능성이 매우 높습니다.
공유XTelegram

이 기사 어땠어요?

피드백을 남겨주시면 더 나은 맞춤 추천을 만듭니다.

이런 뉴스를 매일 받아보세요

매일 아침 7시, 그날의 정리를 이메일과 Telegram으로 받아보세요.