김과장
AI 뉴스 목록
2026-03-20AI 코딩코드 품질보안개발 도구바이브코딩

내 AI가 짜는 코드에 버그가 1.7배 더 많다 — 구조를 바꾸면 막을 수 있다

AI가 작성한 코드는 사람이 짠 코드보다 버그가 1.7배, 보안 취약점이 2.7배 더 많다는 분석 보고서가 나왔습니다. 해커뉴스 115표를 받은 '의도적 코드 구조' 가이드가 해결책을 제시합니다.


AI 코딩 도구가 코드를 빠르게 만들어주는 건 맞습니다. 하지만 그 코드의 품질이 사람이 직접 짠 코드보다 확연히 떨어진다는 사실이 데이터로 증명됐습니다. CodeRabbit이 발표한 'AI vs Human 코드 생성 보고서'에 따르면, AI가 작성한 코드 변경 요청(PR)은 사람이 작성한 것보다 평균 1.7배 더 많은 문제를 포함하고 있었습니다. 이 문제를 해결하는 구체적인 방법론이 해커뉴스에서 115표를 받으며 화제가 되고 있습니다.

AI가 짜는 코드, 실제로 얼마나 문제가 있을까

CodeRabbit 보고서의 핵심 수치를 정리하면 충격적입니다.

AI 코드 vs 사람 코드 — 주요 차이

전체 문제: AI가 PR당 10.83건, 사람은 6.45건 (1.7배)
심각한 결함: AI가 1.4배 더 많음 (341건 vs 240건)
보안 취약점(XSS 등): AI가 2.74배 더 많음
비밀번호 처리 오류: AI가 1.88배 더 많음
코드 읽기 어려움: AI가 3.15배 더 심함
불필요한 파일 읽기/쓰기: AI가 7.6배 더 많음
CodeRabbit 보고서 - AI 코드 PR은 심각한 결함이 1.4배, 주요 결함이 1.7배 더 많음

특히 눈여겨볼 부분은 보안입니다. AI가 작성한 코드에서 XSS(웹페이지에 악성 코드를 삽입하는 공격) 취약점이 사람 코드보다 2.74배 더 많이 발견됐습니다. 비밀번호를 안전하지 않게 처리하는 경우도 1.88배나 더 많았습니다.

CodeRabbit 보고서 - AI 코드의 보안 취약점이 사람 코드보다 최대 2.74배 더 많음

왜 이런 일이 벌어질까요? AI는 코드를 통계적으로 추론합니다. 프로젝트의 전체 맥락이나 보안 정책을 이해하는 게 아니라, "이런 상황에서 보통 이렇게 짜니까"라는 패턴을 따릅니다. 그래서 인증 로직(로그인 처리 등)을 여러 파일에 서로 다른 방식으로 만들어놓는 일이 흔합니다.

'의도적 코드 구조' — 개발자 벤 스워들로의 해결책

이 문제에 대한 해결책이 해커뉴스에서 큰 반향을 일으켰습니다. 개발자 벤 스워들로(Ben Swerdlow)가 공개한 'AI Code — 의도적 코드 구조 가이드'는 AI 코딩 도구를 쓸 때 코드가 엉망이 되지 않게 하는 구체적인 원칙을 담고 있습니다.

그의 핵심 메시지는 강렬합니다: "코드베이스를 AI 코딩 에이전트 1개보다 더 빠르게 엉망으로 만드는 건, AI 에이전트 여러 개뿐이다."

원칙 1 — 함수를 두 종류로 나눠라

시맨틱 함수(단일 작업 함수): 딱 하나의 일만 하는 함수입니다. 이름만 보면 무슨 일을 하는지 알 수 있어야 합니다. 예를 들어 calculate_tax(income)처럼요. 주석이 필요 없을 정도로 이름 자체가 설명이 되어야 합니다.

프래그매틱 함수(업무 처리 함수): 여러 단일 작업 함수를 조합해서 실제 업무를 처리하는 함수입니다. 예를 들어 handle_user_signup()은 이메일 확인, 계정 생성, 환영 메일 발송 등을 순서대로 실행합니다.

AI가 코드를 짤 때 이 두 가지를 구분하지 않으면, 하나의 함수가 점점 비대해지면서 아무도 이해할 수 없는 코드 덩어리가 됩니다.

원칙 2 — 데이터 구조로 잘못된 상태를 원천 차단하라

스워들로는 "모든 선택 항목(optional field)은 나머지 코드 전체가 매번 답해야 하는 질문"이라고 말합니다. AI는 "혹시 모르니까" 하면서 선택 항목을 남발하는 경향이 있습니다. 이렇게 되면 코드 곳곳에서 "이 값이 있나? 없나?"를 확인해야 하고, 하나라도 빠뜨리면 버그가 됩니다.

해결책은 데이터의 이름을 정확하게 짓는 것입니다. 예를 들어 그냥 Email이 아니라 UnverifiedEmail(아직 확인 안 된 이메일)과 VerifiedEmail(확인된 이메일)로 나누면, AI도 사람도 각각의 상황에 맞는 코드를 짤 수밖에 없습니다.

CodeRabbit 보고서 - AI 코드의 유지보수 문제: 가독성 3.15배, 이름 짓기 1.87배 더 나쁨

해커뉴스 개발자들의 실전 팁 5가지

해커뉴스 토론에서 나온 실전 노하우를 정리했습니다.

1. AI에게 주는 지침서는 10~20줄로 줄여라 (p1necone)
"누구나 아는 원칙을 잔뜩 적어두면 AI가 정작 중요한 프로젝트별 규칙을 놓칩니다. 이 프로젝트에서만 다른 점만 적어두는 게 핵심입니다."

2. 테스트를 두 종류로 나눠라 (stpedgwdgfhgdd)
AI가 수정해도 되는 '구현 테스트'와, 절대 건드리면 안 되는 '합격 기준 테스트'를 분리하면 AI가 테스트를 함부로 바꿔서 버그를 숨기는 일을 막을 수 있습니다.

3. 코드 검사 도구를 AI에게도 강제 적용하라 (shepherdjerred)
AI가 코드 검사 규칙을 우회하는 주석(예: "이 줄은 검사 건너뛰기")을 달지 못하도록 CI(자동 빌드 시스템)에서 차단하라는 조언입니다.

4. 핵심 로직과 외부 연결을 분리하라 (earljwagner)
계산이나 판단 같은 핵심 로직은 외부 시스템(DB, API 등)과 분리해두면, AI가 건드려도 핵심이 망가지지 않습니다.

5. AI가 만든 요약을 믿지 마라, 직접 확인하라 (sgc)
30년 경력 개발자가 "문서는 코드와 따로 놀게 된다"고 경고했고, 다른 참여자는 "필요할 때 AI에게 코드 요약을 시키는 게 낫다"고 반박했습니다. 결론: 미리 써놓은 문서보다 실시간 AI 요약이 더 정확합니다.

Cursor에서 바로 적용하는 방법

스워들로의 가이드는 단순한 글이 아니라, AI 코딩 도구에 바로 설치할 수 있는 스킬(규칙 파일)로도 제공됩니다. Cursor IDE를 쓰고 있다면 터미널에서 한 줄이면 됩니다.

npx skills add theswerd/aicode

설치하면 AI가 코드를 생성할 때 자동으로 시맨틱/프래그매틱 함수 구분, 정확한 이름 짓기, 선택 항목 최소화 등의 원칙을 따르게 됩니다.

Claude Code나 다른 AI 코딩 도구를 사용한다면, aicode.swerdlow.dev의 내용을 프로젝트 루트의 CLAUDE.md.cursorrules 파일에 복사해서 넣으면 같은 효과를 얻을 수 있습니다.

Forrester 예측: 2026년 기술 부채 위기

이 문제는 개인 프로젝트에만 국한되지 않습니다. 시장조사기관 Forrester는 2026년까지 기술 의사결정자의 75%가 중간~심각한 수준의 기술 부채(기술 빚)에 시달릴 것으로 예측했습니다. Sonar의 분석에 따르면, 2020년부터 2024년 사이 복사-붙여넣기 코드(5줄 이상 중복 블록)가 8배 증가했는데, 이는 AI 코딩 도구 채택 시기와 정확히 겹칩니다.

CodeRabbit 보고서 - AI 코드의 로직 오류: 비즈니스 로직 2.25배, 동시성 제어 2.29배 더 많음

AI 코딩 도구를 안 쓸 수는 없습니다. 하지만 코드 구조를 미리 설계해두지 않으면, AI가 빠르게 만들어주는 코드가 결국 더 큰 비용으로 돌아옵니다. 해커뉴스 토론에서 한 개발자(AgentOrange1234)가 남긴 말이 핵심을 찌릅니다: "AI가 방어적으로 코딩하는 건 좋지만, 방어적 코딩과 사려 깊은 설계는 전혀 다른 것이다."

관련 콘텐츠Easy클코로 AI 시작하기 | 무료 학습 가이드 | AI 뉴스 더보기

AI 소식, 가장 빠르고 쉽게 받아보세요

누구나 이해할 수 있도록, 가장 자세하고 쉽게 알려드립니다

텔레그램 채널 구독