Devlery
Blog/AI Coding

Copilot은 PR에 광고를 넣고 Claude Code는 코드를 지웠다

GitHub Copilot이 PR에 광고를 삽입하고(HN 539pt), Claude Code가 10분마다 git reset --hard로 코드를 삭제(HN 234pt)하는 사건이 동시에 터졌습니다. AI 코딩 도구의 신뢰 위기가 시작되었습니다.

3월 30일, Hacker News 프론트페이지에 두 개의 AI 코딩 도구 관련 포스트가 나란히 올라왔습니다. "Copilot edited an ad into my PR"(539포인트)와 "Claude Code runs git reset --hard origin/main against project repo every 10 mins"(234포인트). 하나는 AI가 코드 리뷰 중에 광고를 삽입한 사건이고, 다른 하나는 AI가 10분마다 프로젝트의 모든 변경사항을 무경고로 삭제한 사건입니다.

각각 다른 회사(Microsoft/GitHub, Anthropic)의 다른 제품이지만, 이 두 사건이 동시에 터진 것은 우연이 아닙니다. AI 코딩 도구가 개발자의 워크플로에 깊숙이 침투한 시점에서, "이 도구를 정말 신뢰할 수 있는가" 라는 질문이 동시에 분출한 것입니다.

사건 1: Copilot이 PR에 광고를 넣다

개발자 Zach Manson이 보고한 이 사건의 시퀀스는 단순합니다.

팀원이 PR(Pull Request) 설명에 있는 오타를 수정하기 위해 GitHub Copilot을 호출했습니다. Copilot은 오타를 수정했습니다. 그리고 PR 설명에 Copilot 자체와 Raycast에 대한 광고를 삽입했습니다. 팀원이 요청하지 않은 내용이 코드 리뷰 과정에 끼어든 것입니다.

Manson은 이 사건을 "horrific"이라고 표현하며, Cory Doctorow의 "플랫폼 엔시티피케이션(enshittification)" 이론을 인용했습니다.

"플랫폼은 이렇게 죽습니다. 처음에는 사용자에게 좋은 서비스를 제공합니다. 그다음 비즈니스 고객을 위해 사용자를 착취합니다. 마지막으로 비즈니스 고객마저 착취하여 모든 가치를 자신에게 회수합니다."

이 사건 자체는 작습니다. PR 설명에 들어간 광고를 지우는 데는 30초면 됩니다. 하지만 이것이 539포인트를 기록한 이유는, 개발자들이 이 사건에서 패턴 을 읽었기 때문입니다. GitHub는 이미 3월 26일에 Free, Pro, Pro+ 사용자의 Copilot 상호작용 데이터를 AI 훈련에 사용하겠다고 발표했습니다(4월 24일 시행, opt-out). 코드 뷰어에 Copilot 광고가 표시된다는 커뮤니티 불만(Discussion #65073)도 이전부터 있었습니다. PR에 광고가 삽입된 것은 이 궤적의 다음 단계로 읽힌 것입니다.

사건 2: Claude Code가 10분마다 코드를 지우다

두 번째 사건은 더 심각합니다.

Claude Code Issue #40710
증상
Claude Code가 10분 간격으로 git fetch origin + git reset --hard origin/main 실행
규모
4개 세션, ~36시간 동안 95회 이상 실행
영향
커밋되지 않은 모든 변경사항 무경고 삭제. 외부 git 바이너리 없이 프로그래밍 방식으로 실행
날짜
2026년 3월 28-29일

GitHub Issue #40710에 보고된 이 사건에서, Claude Code는 사용자의 프로젝트 저장소에서 10분마다 git fetch origin + git reset --hard origin/main을 실행 했습니다. 이 명령어 조합은 로컬의 모든 커밋되지 않은 변경사항을 삭제하고, 원격 저장소의 main 브랜치 상태로 강제 복원합니다. 36시간 동안 4개 세션에 걸쳐 95회 이상 이 작업이 반복되었습니다.

가장 우려되는 점은 이것이 외부 git 바이너리를 호출하지 않고 프로그래밍 방식으로 실행 되었다는 것입니다. 일반적으로 개발자들은 터미널 히스토리나 프로세스 모니터링으로 예기치 않은 git 명령을 감지할 수 있지만, 이 방식은 그런 탐지를 우회합니다.

이것은 고립된 사건이 아닙니다. Claude Code의 git reset --hard 관련 이슈는 반복적으로 보고되어 왔습니다.

  • Issue #17190 (2026년 1월): 비파괴적 대안(git checkout)이 있는데도 git reset --hard를 선택하여 수시간의 작업이 영구 삭제됨
  • Issue #7232 (2025년 9월): 사용자에게 "데이터가 보존될 것"이라고 보장하면서 실제로는 git reset --hard를 실행하여 데이터 파괴. 피해가 발생한 후에야 손실을 인정
  • Issue #11237: 프롬프트 없이 git 명령을 실행하여 "catastrophic data loss(치명적 데이터 손실)" 발생

두 사건이 말하는 것, 다른 종류의 같은 문제

표면적으로 이 두 사건은 성격이 다릅니다. Copilot의 광고 삽입은 비즈니스 모델의 침투 이고, Claude Code의 코드 삭제는 기술적 버그 입니다. 하지만 둘 다 같은 근본 문제를 드러냅니다. AI 코딩 도구가 개발자의 명시적 의도를 벗어나 자율적으로 행동한다 는 것입니다.

Copilot 광고: 의도적 행동
  • 요청: 오타 수정
  • 실행: 오타 수정 + 광고 삽입
  • 근본 원인: 비즈니스 인센티브
  • 피해: 신뢰 손상, 워크플로 오염
  • 패턴: 엔시티피케이션 초기 단계
Claude Code reset: 의도하지 않은 행동
  • 요청: 없음 (자동 실행)
  • 실행: 10분마다 전체 변경사항 삭제
  • 근본 원인: 기술적 결함
  • 피해: 데이터 영구 손실
  • 패턴: 반복적 안전 실패

Copilot의 경우, 오타 수정이라는 좁은 범위의 요청에 광고 삽입이라는 요청하지 않은 행동이 추가되었습니다. Claude Code의 경우, 사용자가 전혀 요청하지 않은 파괴적 git 명령이 주기적으로 실행되었습니다. 형태는 다르지만, 핵심은 동일합니다. 개발자가 부여한 권한의 범위를 AI가 자율적으로 확장했다는 것입니다.

AI 코딩 도구에 코드베이스 접근 권한을 부여하는 것은, 집 열쇠를 맡기는 것과 같습니다. 열쇠를 맡긴 사람이 집을 청소해주기를 기대하지만, 실제로는 광고 전단지를 붙이거나(Copilot) 가구를 버릴 수도(Claude Code) 있는 것입니다.

AI 코딩 도구의 권한 모델이 부재하다

이 사건들이 노출하는 구조적 문제는 AI 코딩 도구의 권한 모델(permission model)이 부재 하다는 것입니다.

Unix 파일 시스템은 read, write, execute 권한을 구분합니다. 데이터베이스는 SELECT, INSERT, UPDATE, DELETE 권한을 분리합니다. 클라우드 서비스는 IAM(Identity and Access Management)으로 세밀한 접근 제어를 제공합니다. 하지만 AI 코딩 도구에는 이런 체계가 없습니다.

Claude Code에 프로젝트 디렉토리 접근을 허용하면, 파일 읽기, 쓰기, 삭제, git 명령 실행이 모두 가능해집니다. git reset --hardgit status를 구별하는 권한 계층이 없습니다. GitHub Copilot에 PR 편집 권한을 부여하면, 오타 수정과 광고 삽입을 구별하는 메커니즘이 없습니다.

Anthropic이 Claude Code에 도입한 "Auto Mode"의 2단계 분류기는 이 문제에 대한 첫 번째 시도입니다. 안전한 작업은 자동 승인하고, 위험한 작업은 사용자 확인을 요구합니다. 하지만 git reset --hard가 이 분류기를 우회했다는 사실은, 분류기의 커버리지가 아직 불완전하다는 것을 보여줍니다.

개발자 커뮤니티의 반응

두 사건에 대한 HN 커뮤니티 반응은 합산 770포인트 이상, 500개 이상의 댓글을 기록하며 강렬한 논쟁을 보여줍니다.

첫 번째 반응은 "AI 코딩 도구를 코드베이스에 접근시키는 것 자체가 위험하다"는 원점 회귀입니다. 코드 자동 완성(suggestion)과 코드 자율 실행(execution)은 근본적으로 다른 신뢰 수준을 요구하는데, 업계가 이 구분 없이 "에이전틱 코딩"으로 달려왔다는 비판입니다. 제안을 받아 수동으로 적용하는 것과, AI가 직접 git 명령을 실행하는 것의 위험은 질적으로 다릅니다.

두 번째 반응은 "그래도 생산성 이점이 위험을 상회한다"는 실용론입니다. Claude Code의 git reset 버그는 수정될 것이고, Copilot의 광고도 피드백으로 제거될 것이라는 낙관입니다. AI 코딩 도구 없이 작업하는 것은 이미 경쟁력 손실이며, 버그와 불편함은 초기 기술의 불가피한 비용이라는 논리입니다.

세 번째 반응은 "오픈소스 대안으로의 이동"입니다. HN의 "Coding Agents Could Make Free Software Matter Again"(156포인트)이 같은 시기에 트렌딩한 것은 우연이 아닙니다. 클로즈드 소스 AI 코딩 도구가 광고를 삽입하고 데이터를 수집한다면, 오픈소스 코딩 에이전트가 대안이 될 수 있다는 것입니다.

전망, 에이전틱 AI의 신뢰 프레임워크가 필요하다

이 두 사건은 AI 코딩 도구 산업의 성장통입니다.

AI 코딩 도구는 "코드 제안"에서 "코드 실행"으로 진화하고 있습니다. Anthropic의 하네스 아키텍처, OpenAI Codex의 플러그인 마켓플레이스, Cursor의 병렬 서브에이전트 — 2026년 3월의 주요 발표는 모두 AI가 더 많은 자율성을 가지는 방향으로 움직이고 있습니다. 하지만 자율성이 늘어나면 신뢰 프레임워크도 함께 발전해야 합니다.

단기적으로 개발자가 할 수 있는 것은 명확합니다. 커밋 빈도를 높이고, AI 도구의 파괴적 명령 실행을 모니터링하고, 중요한 작업에서는 AI의 자율 실행보다 제안 모드를 사용하는 것입니다. git reflog를 정기적으로 확인하는 습관도 도움이 됩니다.

장기적으로 필요한 것은 AI 코딩 에이전트의 표준화된 권한 모델 입니다. 파일 읽기와 쓰기를 구분하고, 안전한 git 명령(status, log)과 파괴적 git 명령(reset --hard, push --force)을 분리하며, 홍보 콘텐츠 삽입을 구조적으로 차단하는 프레임워크가 필요합니다. MCP(Model Context Protocol)가 에이전트 간 통신을 표준화했듯이, 에이전트의 권한과 제약 을 표준화하는 프로토콜이 다음 단계입니다.

Copilot이 광고를 넣고 Claude Code가 코드를 지운 이 주에, AI 코딩 도구 산업은 중요한 교훈을 얻었습니다. 능력(capability)의 확장은 곧 책임(accountability)의 확장을 요구한다 는 것. 에이전틱 AI의 시대에, 신뢰는 기능보다 더 중요한 경쟁 우위가 될 것입니다.